当前位置:网站首页 > 技术博客 > 正文

常用的接口自动化测试框架



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的工具类即可,后续也会写文章专门介绍。

最后如果你想学习自动化测试,欢迎加入笔者的交流群:,里面会有很多资源和大佬答疑解惑,我们一起交流一起学习!

版权声明


相关文章:

  • xcp协议作用是什么2025-01-09 19:01:05
  • ios游戏源码2025-01-09 19:01:05
  • 胖熊是啥2025-01-09 19:01:05
  • C语言基础知识点2025-01-09 19:01:05
  • css按钮样式代码2025-01-09 19:01:05
  • 网络流量监控app2025-01-09 19:01:05
  • 计算机的发展历程简述2025-01-09 19:01:05
  • 双硬盘双系统互不干扰2025-01-09 19:01:05
  • java中网络编程三要素2025-01-09 19:01:05
  • 键盘鼠标记录大师怎么用2025-01-09 19:01:05