接口自动化-第一篇(Python+pytest+allure)

 

想写很久,一直懒得动笔,且边学边写吧。。。

目录

1.了解pytest框架

2.安装pytest,以及相关插件

2.1安装pytest

 2.2安装插件

1.使用虚拟环境(也是针对此项目,局部安装)安装。

 2.使用dos命令安装全局的环境

3.pytest默认使用规则

4.运行规则

1.使用主函数来运行

1)运行所有

​  2)运行指定的文件

3)运行指定目录 

4)运行指定模块指定类指定用例 

2.使用命令行来运行

1)运行所有

2)运行指定的文件

3)运行指定的目录

4)运行指定模块指定类指定用例 

3.使用pytest.ini配置文件运行

5.运行参数详解

6.跳过测试用例



1.了解pytest框架

它是一个单元测试框架,比unittest更灵活。

  • 可以与requests相结合可以组成接口自动化,与selenium/appnium结合也可以做web自动化。
  • 可以和allure结合生成非诚美观的测试报告;
  • 可以和Jenkins持续集成;
  • 非常强大的插件:pytest、pytest-html(出报告)、pytest-xdist(多并发)、pytest-ordering(改顺序)、pytest-returnfailures(重跑)

2.安装pytest,以及相关插件

2.1安装pytest

pip install -U pytest

验证是否安装成功

pytest --version # 会展示当前已安装版本

 2.2安装插件

1.使用虚拟环境(也是针对此项目,局部安装)安装。

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA54G_54OC5Y2D6ZizODEz,size_20,color_FFFFFF,t_70,g_se,x_16

 2.使用dos命令安装全局的环境

3.pytest默认使用规则

1.模块名必须test_*.py格式或*_test.py格式;

2.测试类必须以Test开头,并且不能有init方法;

3.测试方法必须是以test开头;

4.运行规则

1.使用主函数来运行

1)运行所有

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA54G_54OC5Y2D6ZizODEz,size_19,color_FFFFFF,t_70,g_se,x_16  2)运行指定的文件

if __name__ == '__main__':
    pytest.main(['-vs', 'test_ll.py'])#运行test_ll这个用例。其中-V是代表更详细的显示执行的内容。从用例名、类、函数都显示,-s表示输出调试信息,包括print打印的信息

3)运行指定目录 

if __name__ == '__main__':
    pytest.main(['-vs', './目录名'])#例如./testcase
#运行test_ll这个用例。其中-V是代表更详细的显示执行的内容。从用例名、类、函数都显示,-s表示输出调试信息,包括print打印的信息

4)运行指定模块指定类指定用例 

pytest.main(['test_reg.py::TestClass::test_method'])  冒号分割

2.使用命令行来运行

1)运行所有

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA54G_54OC5Y2D6ZizODEz,size_20,color_FFFFFF,t_70,g_se,x_16 或者具体的文件名

  pytest 文件路径/测试文件名
  例如:pytest ./test_111.py

2)运行指定的文件

pytest -vs test_ll.py

3)运行指定的目录

pytest -vs ./目录名

4)运行指定模块指定类指定用例 

pytest -vs test_reg.py::TestClass::test_method 冒号分割

3.使用pytest.ini配置文件运行

        这个配置文件是核心配置文件,配置一些参数、路径啥的,配置好之后又,不管是采用3、4步骤中的哪一种运行都会读取这个文件;

  1. 位置:一般在项目的根目录中;
  2. 编码:必须是ANSI,编码不正确会报错,比如说出现一些中文啥的,可以通过notepad进行格式转换;
  3. 作用:改变pytest默认的行为;
[pytest]
addpots = -vs --html ./report/report.html #生成一个报告
testpaths = ./testcase #要执行的目录的路径
python_files=test_*.py #要执行的文件,这个是默认的执行规则,通过这个配置可进行修改,比如文件叫做aaa_*py,则改成aaa_*就可
python_functions=test  #要执行的函数的规则,同样也可进行修改
markers=      #标记要执行的用例。执行的时候输入 pytest -m "smoke"即执行冒烟的,多个可用or进行组合执行
        smoke:冒烟
        xx:
        xx:

5.运行参数详解

-reruns=xxx:失败用例重跑

-q: 安静模式, 不输出环境信息

-v: 丰富信息模式, 输出更详细的用例执行信息

-s: 显示程序中的print/logging输出。输入调试信息

-vs:一起使用

-n:支持多线程或分布式运行测试用例;例如:pytest -vs ./testcase/test_111.py -n 2(2个线程一起执行)

-x:表示只要一个用例报错,那么测试停止

-maxfail=2:出现2个用例失败就停止

-k:根据测试用例的部分字符串指定测试用例;例如:pytest -vs ./testcase -k "ao";,运行包含ao的测试用例

6.跳过测试用例

1)有条件跳过

@pytest.mark.skipif(age>=16,reason="")

2)无条件跳过

@pytest.mark.skipif(reason="")

 

 


版权声明:本文为weixin_37018468原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。