pytest是Python的一种单元测试框架,可用来组织用例执行,用例断言,下面这篇文章主要给大家介绍了关于pytest接口自动化测试框架搭建的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
Pytest目前已经成为Python系自动化测试必学必备的一个框架,网上也有很多的文章讲述相关的知识。最近自己也抽时间梳理了一份pytest接口自动化测试框架,因此准备写文章记录一下,做到尽量简单通俗易懂,当然前提是基本的python基础已经掌握了。如果能够对新学习这个框架的同学起到一些帮助,那就更好了~
语言:python 3.8
编译器:pycharm
基础:具备python编程基础
框架:pytest+requests+allure
项目结构图如下:
每一层具体的含义如下图:
测试报告如下图:
4.1 接口数据文件处理
框架中使用草料二维码的get和post接口用于demo测试,比如:
get接口:https://cli.im/qrcode/getDefaultComponentMsg
返回值:{“code”:1,“msg”:"",“data”:{xxxxx}}
数据文件这里选择使用Json格式,文件内容格式如下,test_http_get_data.json:
表示dataitem下有两条case,每条case里面声明了id, name, header, url, method, expectdata。如果是post请求的话,case中会多一个parameters表示入参,如下:
为了方便一套脚本用于不同的环境运行,不用换了环境后挨个儿去改数据文件,比如
测试环境URL为:https://testcli.im/qrcode/getDefaultComponentMsg
生产环境URL为:https://cli.im/qrcode/getDefaultComponentMsg
因此数据文件中url只填写后半段,不填域名。然后config》global_config.py下设置全局变量来定义域名:
utils文件夹下,创建工具类文件:read_jsonfile_utils.py, 用于读取json文件内容:
运行结果如下:
utils文件夹下,除了上面提到的读取Json文件工具类:read_jsonfile_utils.py,还有封装request 请求的工具类:http_utils.py
从Excel文件中读取数据的工具类:get_excel_data_utils.py(虽然本次框架中暂时未采用存放接口数据到Excel中,但也写了个工具类,需要的时候可以用)
http_utils.py内容:
get_excel_data_utils.py内容:
testcases文件夹下编写测试用例:
test_caoliao_http_get_interface.py内容:
test_caoliao_http_post_interface.py内容:
企业中的系统接口,通常都有认证,需要先登录获取token,后续接口调用时都需要认证token。因此框架需要能处理在运行用例前置和后置做一些动作,所以这里用到了conftest.py文件,内容如下:
由于用例中用到了@pytest.mark.httptest给用例打标,因此需要创建pytest.ini文件,并在里面添加markers = httptest,不然会有warning,说这个Mark有问题。并且用例中用到的日志打印logging模板也需要在pytest.ini文件中增加日志配置。pytest.ini文件内容如下:
4.4 测试用例运行生成报告
pytest-html报告:
generateAllureReport.bat文件位置:
文件内容:
Allure报告:
框架中用到的一些细节知识点和问题,如:
我会在后续写文章再介绍。另外框架同样适用于dubbo接口的自动化测试,只需要添加python调用dubbo的工具类即可,后续也会写文章专门介绍。
最后如果你想学习自动化测试,欢迎加入笔者的交流群:,里面会有很多资源和大佬答疑解惑,我们一起交流一起学习!
版权声明:
本文来源网络,所有图片文章版权属于原作者,如有侵权,联系删除。
本文网址:https://www.mushiming.com/mjsbk/5812.html