Python 接口测试之接口关键字封装

引言

我们使用RF做UI自动化测试的时候,使用的是关键字驱动。同样,Python做接口自动化测试的时候,也可以使用关键字驱动。但是这里并不是叫关键字驱动,而是叫数据驱动。而接口测试的关键字是什么呢? 我们数据驱动的载体是Excel,那么excel里存放的数据是接口测试用例数据,一个接口数据里有常量和变量。变量就是一些参数对应的值,而常量就是接口的:host、path、method和data等等。而这些常量是固定不变的,我们可以将接口测试用例这些常量封装到一个类中,每次执行测试的时候,调用类中某个方法来读取excel中接口关键字对应的值。这些就称之为——关键字数据。

接口关键字封装

众所周知,Excel中第一行字段的值都为固定的值,即常量。可以用这些常量来定位每一个测试用例不同字段的坐标值,将获取到的值传递给接口。

首先我们看看接口测试用例有哪些最主要的关键字常量:

上图基本上是接口测试用例关键的字段,当然可以根据自己项目需要自行添加。

我们在读取每条测试用例的时候,实际上是读取每行的数据,然后可以通过固定的关键字(列)来获取对应的值,最后传递给接口方法来执行接口测试。

封装如下:

class TestCaseKeyWord(object):
    """
    定义测试用例关键字类
    """
    CASE_ID = '0'
    CASE_NAME = '1'
    IS_EXECUTE = '2'
    INTERFACE_URL = '3'
    METHOD = '4'
    HEADER = '5'
    REQUEST_DATA  = '6'
    EXPECTED_RESULT = '7'
    ACTUAL_RESULT = '8'
    RESULT = '9'
 
# 获取用例id
def get_case_id():
    return TestCaseKeyWord.CASE_ID
 
# 获取用例名称
def get_case_name():
    return TestCaseKeyWord.CASE_NAME
 
# 用例是否执行
def get_case_is_execute():
    return TestCaseKeyWord.IS_EXECUTE
 
# 接口url
def get_case_interface_url():
    return TestCaseKeyWord.INTERFACE_URL
 
# 用例方法
def get_case_method():
    return TestCaseKeyWord.METHOD
 
# 请求头
def get_case_header():
    return TestCaseKeyWord.HEADER
 
# 请求参数
def get_case_payload():
    return TestCaseKeyWord.REQUEST_DATA
 
# 预期结果
def get_case_expected_result():
    return TestCaseKeyWord.EXPECTED_RESULT
 
# 实际结果
def get_case_actual_result():
    return TestCaseKeyWord.ACTUAL_RESULT
 
# 用例执行结果
def get_case_result():
    return TestCaseKeyWord.RESULT
 
 
if __name__ == '__main__':
    print(get_case_id())
    print(get_case_is_execute())

实例演示

在excel中添加一条测试用例:

新建testcase_test.py文件,获取接口测试用例名称:

from basic_method import testcases_keyword
from public.operate_excel import Operate_Excel
get_excel = Operate_Excel()
# 获取用例数
print(get_excel.get_sheet_nrows()-1)
# 返回用例名称关键字的列值
case_name_col = int(testcases_keyword.get_case_name())
print(case_name_col)
# 获取第一条用例的名称
get_name = get_excel.get_sheet_cell(1,case_name_col)
print(get_name)

执行结果:

最后感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

在这里插入图片描述

软件测试面试小程序

被百万人刷爆的软件测试题库!!!谁用谁知道!!!全网最全面试刷题小程序,手机就可以刷题,地铁上公交上,卷起来!

涵盖以下这些面试题板块:

1、软件测试基础理论 ,2、web,app,接口功能测试 ,3、网络 ,4、数据库 ,5、linux

6、web,app,接口自动化 ,7、性能测试 ,8、编程基础,9、hr面试题 ,10、开放性测试题,11、安全测试,12、计算机基础

这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!  

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/97739.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

多用户商城系统常见的安全性和数据保护措施有哪些?

电子商务的迅速发展,越来越多的企业选择搭建多用户商城系统来扩展业务。然而,随之而来的是对数据安全和保护的日益关注。在选择多用户商城系统时,我们需要考虑一系列的安全性和数据保护措施,以确保商城系统的稳定性和用户数据的完…

SpringBoot + layui 框架实现一周免登陆功能

✅作者简介:2022年博客新星 第八。热爱国学的Java后端开发者,修心和技术同步精进。 🍎个人主页:Java Fans的博客 🍊个人信条:不迁怒,不贰过。小知识,大智慧。 💞当前专栏…

抢跑预制菜,双汇发展转守为攻?

懒,懒出新风口,预制菜竟成了年轻人新时代的“田螺神话”? 《2022年中国预制菜产业发展白皮书》数据显示,2022年全国预制菜的市场规模是4196亿元人民币,到2026年可以突破万亿大关。 预制菜的火爆显而易见,…

Java的类加载顺序

加载、验证、准备、解析和初始化。 加载 “加载”(Loading)阶段是“类加载”(Class Loading)过程的第一个阶段,在此阶段,虚拟机需要完成以下三件事情: 通过一个类的全限定名来获取定义此类的二进制字节流。将这个字节流所代表的静态存储结构…

如果应对2023年国赛

国赛倒计时一周,大家多看看优秀论文,赛前多思考,使大脑在活跃状态,更好的应对题目。 需要历年游戏论文的小伙伴可私信我,或关注微信公众号私信我

Rabbitmq的Shovel

Federation 具备的数据转发功能类似, Shovel 够可靠、持续地从一个 Broker 中的队列 ( 作为源端,即source)拉取数据并转发至另一个 Broker 中的交换器 ( 作为目的端,即 destination) 。作为源端的队列和作为目的端的交换器可以同时位于…

Debian12 Gnome环境下的办公软件安装

一、禁用Wayland,启用xorg 当前Debian12 默认采用Wayland来支持gnome环境,但是许多软件无法在该系统下显示,例如:openoffice,yozo-office,weixin,fcitx。所以要在gdm3的配置文件中,…

二叉树的构建及遍历

目录 题目题目要求示例 解答方法一、实现思路时间复杂度和空间复杂度代码 方法二、实现思路时间复杂度和空间复杂度代码 题目 二叉树的构建及遍历 题目要求 题目链接 示例 解答 方法一、 先构建二叉树,再中序遍历。 实现思路 按照给出的字符串创建二叉树&am…

微信8.0.41更新来了,看看有哪些变化吧

微信给我们带来了极大的方便,无论是日常聊天还是工作沟通,几乎离不开它。 时不时会给我一种熟悉的陌生感。 这个功能,好像我之前是没见过的。 就比如公众号信息流,刷着刷着就会发现,怎么会有看一看的信息推流会突然出现…

浅谈Lua协程和函数的尾调用

前言 虽然不经常用到协程,但是也不能谈虎色变。同时,在有些场景,协程会起到一种不可比拟的作用。所以,了解它,对于一些功能,也会有独特的思路和想法。 协程 概念 关于进程和线程的概念就不多说。 那么…

HRS--人力资源系统(Springboot+vue)--打基础升级--(六)分页查询 + 重置按钮

一:先弄个简单的重置按钮 1.界面设计就放在搜索框同一列的位置 2. 在点击重置按钮时,清空搜索框内的内容,同时触发一次无条件查询(这个写法有bug,下面会有说明) 二:做分页 在MyBatis中,有多种方法可以实现分…

Python编程

Lesson I 解rar压缩包的密码 1 下载Python并安装 网址: 注意选对是32 bit还是64 bit Python Releases for Windows | Python.orgThe official home of the Python Programming Languagehttps://www.python.org/downloads/windows/ 2 安装unrar pip install unrar 3 下载u…

十八、责任链模式

一、什么是责任链模式 责任链(Chain of Responsibility)模式的定义:为了避免请求发送者与多个请求处理者耦合在一起,于是将所有请求的处理者通过前一对象记住其下一个对象的引用而连成一条链;当有请求发生时&#xff0…

开发卡牌gamefi游戏需要多少钱?

卡牌游戏作为一种受欢迎的游戏形式,吸引了众多开发者的关注。然而,开发一款成功的卡牌游戏需要全面考虑多个方面的因素,其中之一就是资金投入。本文将从专业性和投入回报的角度,探讨开发一款卡牌游戏所需的资金投入。 一、专业性的…

KubeFlow组件介绍

kubeflow是一个胶水项目,它把诸多对机器学习的支持,比如模型训练,超参数训练,模型部署等进行组合并已容器化的方式进行部署,提供整个流程各个系统的高可用及方便的进行扩展部署了 kubeflow的用户就可以利用它进行不同的…

四层负载均衡的NAT模型与DR模型推导 | 京东物流技术团队

导读 本文首先讲述四层负载均衡技术的特点,然后通过提问的方式推导出四层负载均衡器的NAT模型和DR模型的工作原理。通过本文可以了解到四层负载均衡的技术特点、NAT模型和DR模型的工作原理、以及NAT模型和DR模型的优缺点。读者可以重点关注NAT模型到DR模型演进的原…

Visual Studio 2022的MFC框架——theApp全局对象

我是荔园微风,作为一名在IT界整整25年的老兵,今天我们来重新审视一下Visual Studio 2022下开发工具的MFC框架知识。 MFC中的WinMain函数是如何与MFC程序中的各个类组织在一起的呢?MFC程序中的类是如何与WinMain函数关联起来的呢&#xff1f…

【C++】vector的使用

1、vector的使用 #define _CRT_SECURE_NO_WARNINGS 1 #include <iostream> #include <vector> using namespace std;void Test1() {vector<int> v1;vector<int> v2(10, 15);vector<int> v3(v2.begin(), v2.end());string str("hello world&…

使用Visual Studio 2022实现透明按钮和标签、POPUP样式窗体的一种工业系统的UI例程

例程实现的功能说明 1、主窗体采用POPUP样式&#xff0c;无标题栏、无菜单栏&#xff0c;适合工业类软件 2、按钮、标签使用自绘&#xff0c;实现透明样式&#xff0c;可以实现灵活的样式设计&#xff0c;更具设计感 按钮重绘函数&#xff1a;OnDrawItem()按钮样式设定&#…

便携式水质检测仪都测哪些水中指标

水质检测仪分为实验室&#xff08;台式&#xff09;和户外使用的便携式多参数水质检测仪。 便携式的有哪些特点&#xff1f; 相对于实验室的水质分析设备&#xff0c;便携式水质多参数分析仪体积小巧&#xff0c;结构简单&#xff0c;户外使用更加便捷&#xff0c;功能更丰富。…