欢迎光临散文网 会员登陆 & 注册

【2023最新教程】从0到1搭建pytest接口自动化测试框架(建议收藏)

2023-03-14 16:11 作者:华测教育官方  | 我要投稿

整理了一些软件测试方面的资料、面试资料(接口自动化、web自动化、app自动化、性能安全、测试开发等),有需要的小伙伴可以拉到文末,无套路自行领取~

文章目录

一. 背景

二. 基础环境

三. 项目结构

四、框架解析

4.1 接口数据文件处理
4.2 封装测试工具类
4.3 测试用例代码编写
4.4 测试用例运行生成报告‍‍


一. 背景

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文件内容:


运行结果如下:


4.2 封装测试工具类

utils文件夹下,
除了上面提到的读取Json文件工具类:read_jsonfile_utils.py,
还有封装request 请求的工具类:http_utils.py
从Excel文件中读取数据的工具类:get_excel_data_utils.py(虽然本次框架中暂时未采用存放接口数据到Excel中,但也写了个工具类,需要的时候可以用)


http_utils.py内容:

4.3 测试用例代码编写

testcases文件夹下编写测试用例:

test_caoliao_http_get_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 open report/

Allure报告:

框架中用到的一些细节知识点和问题,如:

conftest.py和@pytest.fixture()结合使用 pytest中使用logging打印日志 python中获取文件相对路径的方式 python虚拟环境 pytest框架下Allure的使用

我会在后续写文章再介绍。另外框架同样适用于dubbo接口的自动化测试,只需要添加python调用dubbo的工具类即可。点击【测试资料】菜单获取框架下载地址。

软件测试学习资源分享

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


这些资料,对于想进阶【自动化测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!凡事要趁早,特别是技术行业,一定要提升技术功底。希望对大家有所帮助……基础知识、Linux必备、Shell、互联网程序原理、Mysql数据库、抓包工具专题、接口测试工具、测试进阶-Python编程、Web自动化测试、APP自动化测试、接口自动化测试、测试高级持续集成、测试架构开发测试框架、性能测试、安全测试等配套学习资源免费分享~

关注我的微信公众号:【 程序员小濠】免费获取~

如果你不想再体验一次自学时找不到资料,没人解答问题,坚持几天便放弃的感受的话,可以加入我的软件测试交流群:110685036 大家一起讨论交流,里面也有各种软件测试资料和技术交流

送上一句话:
如果不想成为“工具人”,就不要停下成长的步伐,打造属于自己的独特价值,具备不可替代的稀缺属性,这样才能不被淘汰,也能够在遭遇变化时,随自己所愿进行选择。


【2023最新教程】从0到1搭建pytest接口自动化测试框架(建议收藏)的评论 (共 条)

分享到微博请遵守国家法律