python接口封装_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)
执行结果:
总结
以上就是针对接口测试用例关键字的封装实操,常量封装十分简单,关键在测试方法与思想,更多自动化测试设计与想法,可以加入QQ测试开发交流群:696400122,一起讨论讨论,不积跬步无以至千里~
python接口封装_Python 接口测试之接口关键字封装相关推荐
- python编程语言继承_Python面向对象程序设计类的封装与继承用法示例
本文实例讲述了Python面向对象程序设计类的封装与继承用法.分享给大家供大家参考,具体如下: 访问限制(封装) 1.概念 面向对象语言的三大特征:封装, 继承, 多态. 广义的封装: 类和函数的定义 ...
- python 接口测试多线程_python多线程测试接口性能,就是这么简单
除了使用性能测试工具进行性能测试,我们也可以直接用python多线程进行性能测试. 下面,使用这几个模块,对一个查询接口做性能测试: requests:发送http请求 json:返回的字符串转换成j ...
- python调用webservice接口实例_python调用webservice接口的实现
使用suds这个第三方模块 from suds.client import Client url = 'http://ip:port/?wsdl' cilent=Client(url) print c ...
- python调用webservice接口实例_python调用各种接口,webservice,c接口,com接口,socket协议方法...
python调用webservice接口(SOAP) (2)调用示例: 需要先安装suds库:pip install suds from suds.client import Client #如果需要 ...
- python调用webservice接口实例_python发布webservice接口
cd soaplib python setup.py install 2.服务端代码 import soaplib from soaplib.core.service import rpc, Defi ...
- python smtplib模块_python实现邮件接口——smtplib模块
1. 思路 使用脚本发送邮件的思路其实和客户端发送邮件一样,过程都是: 登录 -> 写邮件 -> 发送 只不过通过脚本发送时我们需要考虑到整个过程的方方面面.以下为思路导图: 2. Pyt ...
- python 封装_Python 面向对象三大特性之封装
封装 定义:隐藏对象的属性和实现细节,仅对外提供公共访问方式. [好处] 将变化隔离: 便于使用: 提高复用性: 提高安全性: [封装原则] 将不需要对外提供的内容都隐藏起来: 把属性都隐藏,提供公共 ...
- python return用法_Python 为什么没有 void 关键字?
void 是编程语言中最常见的关键字之一,从字面上理解,它是"空的.空集.空白"的意思,最常用于表示函数的一种返回值类型. 维基百科上有一个定义: The void type, i ...
- python性能测试方法_Python性能测试之performance
01使用 Python 性能测试套件 正如之前我在 speed.python.org 网站提到的,Python 核心开发团队非常重视性能问题,这对于比较官方基准和 CPython 版本非常有用. 如图 ...
- python变量说法_Python不允许使用关键字作为变量名,允许使用内置函数名作为变量名,但这会改变函数名的含义...
根据材料,下列表述不正确的是().A.2003年一2009年,H省农民人均纯收入增加最多的是2008年B.2008 云南西双版纳有"植物王国""动物王国"的称誉 ...
最新文章
- Python中的__name__和__main__含义详解
- SAP QM 模块的弊端?
- Linux笔记:vim
- Codeforces Round #335 (Div. 1)--C. Freelancer's Dreams 线性规划对偶问题+三分
- CodeForces - 1426F Number of Subsequences(dp)
- SAP CRM text determination调试
- Android中传递对象的三种方法
- CentOS下添加Root权限用户‘超级用户’方法(xxx is not in the sudoers file.This incident will be reported.的解决方法)
- python 动态属性和特性
- python partial_Python--并行计算框架(pathos)
- UIViewAnimationOptions
- 获取FileUpload上传的文件大小
- 微带滤波器摘要_微带线带通滤波器设计
- 网络技术故障背后:50元发动的DDoS流量攻击
- 04 vue3 scss 组件component kepp-alive缓存子组件 nextTick
- 部署JAX-WS Web服务作为战争中的Apache Tomcat(Deploying JAX-WS webservice as War in Apache Tomcat)...
- 给PPT插入页码和总页码
- 【Rust日报】 2019-02-23
- 2022唯品会双11活动规则解读
- 喵哈哈村的打印机游戏(区间DP)
热门文章
- fpga与三八译码器(BASYS3 VIVADO18)
- php -- 目录、路径、磁盘
- struts2.3+spring3.2+hibernate4.2例子
- 桌面恶心的无法删除的图标之 淘宝购物 删除办法
- Membership、MembershipUser和Roles类
- [转载] Flask+Celery+Redis简单操作
- [转载] Python Web开发—进阶提升 490集超强Python视频教程 真正零基础学习Python视频教程
- [转载] python int 幂函数_Python中对数和幂函数的不精确结果
- Vue.js 学习笔记 二,一些输出指令
- Java匹马行天下之学编程的起点——走进编程的殿堂