Pytest测试框架知识

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Pytest测试框架知识相关的知识,希望对你有一定的参考价值。

参考技术A

pytest是一个非常成熟的全功能的Python测试框架,主要有以下几个特点:

1.简单灵活,容易上手

2.支持参数化

3.能够支持简单的单元测试和复杂的功能测试,还可以用来做selenium/appnium等自动化测试、接口自动化测试(pytest+requests)

4.pytest具有很多第三方插件,并且可以自定义扩展,比较好用的如pytest-selenium(集成selenium)、pytest-html(完美html测试报告生成)、pytest-rerunfailures(失败case重复执行)、pytest-xdist(多CPU分发)等

5.测试用例的skip和xfail处理

6.可以很好的和jenkins集成

7.report框架----allure 也支持了pytest

使用命令

查看是否安装成功及安装的版本信息

pytest官方文档:

注意pytest有如下约束:

1、测试模块文件(.py文件)命名应该以 test_开头或者以_test结尾。

2、测试类命名应当以Test开头。表示一个项目或者一个模块的用例集合

3、测试用例(函数)命名,测试函数的方法命名应该以test_开头。

注意 :测试类的不应该有构造函数,也就是不能有 __init__ 出现

案例新建一个python文件,命名为:test_example1:

执行后,可以看到,运行了test_example1文件下Test_Login测试类和Test_Login2测试类中的三个测试用例

参数详解:

-s: 表示输出调试信息,包括print打印的信息

-v: 显示更详细的信息

-vs: 两个参数一起用

-n: 支持多线程或分布式运行用例

-return NUM: 失败用例重跑,num失败后重跑的次数

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

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

-k: 根据测试用例的步伐字符串指定测试用例

如:pytest -vs ./testcase -k "ao"

--html ./report/report.html : 会在之指定路径下生成html的报告

pytest.ini这个文件它是pytest单元测试框架的核心配置文件

1、位置:一般放在项目的跟目录下

2、编码:必须是ANSI,可以使用notpad++修改编码格式

3、作用:改变pytest默认的行为

4、运行规则:不管是主函数的模式运行,命令模式运行,都会去读取这个配置文件

unittes框架 :是根据ASCII的大小来决定执行的顺序

pytest框架:默认从上到下

学习 python 的 pytest 框架需要的基础知识和学习准备

测试从业者学习 python 应该掌握的内容:

 首先是变量和数据类型,其次列表、字典以及 Json 的一些处理,再者就是循环 判断以及函数或类这些内容。 其中的重点:

 1.循环判断以及字典这块是重点

 2.函数和类,类的学习这块要花较多时间去学习它的集成、封装、多态等,这 是一个不断积累的过程,先把前面的东西弄清楚了,然后去学如何用函数的方 式去处理这些比较基础的内容 python 大纲学习内容详见另一篇文章 扫下方二维码 电商项目直播 二、python 接口自动化 API 测试不同于 UI 自动化测试,它主要关注系统架构的业务逻辑层,或者说多 个或者两模块的逻辑关系,重点在逻辑关系。

 做接口测试前的准备工作

1、接口文档

 2、http 协议的知识

 3、对业务的熟悉程度

 python 做接口自动化需要准备的内容

 1. python3+第三方库 requests+pytest 框架,需要的环境都要准备好 选择 pytest 这个框架的原因

              1).非常容易上手,入门简单,文档丰富,文档中有很多实例可以参考 行业动态、技术交流、

              2).能够支持简单的单元测试和复杂的功能测试

              3).支持参数化 

              4).执行测试过程中可以将某些测试跳过,或者对某些预期失败的 case 标记成失败

              5).支持重复执行失败的 case

              6).支持运行由 nose, unittest 编写的测试 case

              7).具有很多第三方插件,并且可以自定义扩展

              8).方便的和持续集成工具集成

2. 接口文档的准备

             1). 接口文档至少包含四个部分

               1、请求的接口 2、请求的方式 3、请求 的参数 4、请求的返回结果

             2). 无接口文档使用抓包工具获取信息

             3). 接口测试包括接口自动化和手工接口测试

3. 开展接口自动化 前提:明确开展的目的,是要做单接口的监控还是交易流程的监控,或者是在 测试环境把所有接口都覆盖,又或者接口自动化测试是为了线上服务还是为了 线下测试环境服务 例如:现在要做的是上单接口的监控,监控的目的只为了保障接口的可用性, 证明这个接口是可用的就可以了。所以基于不同的目的设计接口测试是有不同 的测试点的,比如单接口的监控,只需要设计正向的用例就可以了,证明接口 是通的就可以了。因为线上做太多的测试容易产生特别多的脏数据。如果在测 试环境要做每个接口的全覆盖,那么每个接口的正向用例,异常用例都是要覆 盖到的,如果用例特别多要根据功能的侧重点来确定一些接口用例的范围选择 一个最优的集合做为接口用例的集合 注意点:每个用例尽可能独立执行,如果需要一些缓存数据要么写死要么长期 有效的,避免一个接口的用例需要依赖其他接口,这样做的原因是如果被依赖 的接口失败了可以避免依赖的接口执行是失败的 最后:环境、接口文档、用例的设计的集合以及接口的目的都确定后可以开始 写了

 4. 实际接口自动化代码编写说明 首先根据接口文档找到请求的 url 及接口地址加上 host 第二部分请求的参数 第三部分如果有头文件就把头文件放进来,如果没有头文件可以忽略 第四发出请求 第五对相应结果进行判断 相应结果判断关注的六部分:

         1).返回的状态码检查

         2).接口返回的关键参数的检查

         3).接口完整性就是它的层级关系是否正确

         4).参数的完整性

        5).特殊参数的检查

        6).功能性的检查 扫下方二维码 电商项目直播

 总结 首先环境的准备,其次做接口自动化的目的,基于目的设计测试用例,设计完 测试用例确定返回结果验证的程度,这些都确定好后按照 pytest 模版写用例就 可以了。 

3.Jenkins 持续集成 首先准备好 Jenkins 持续集成的服务器,然后去创建一个任务,创建完任务去 配置必要的信息例如 git 源,然后执行的命令构建后的一些操作,例如发邮件 等等创建任务的时候如果用 git 源,用 ssh 这种方式的话,需要去设 sshkey,然后 是设置这个任务的执行频率,一般是有几种方式:第一种周期进行项目构建, 它不关注你代码源是否是有变化的,它是按照设定的时间定期去执行设定的任 务,第二种是 icm 这种形式,它是定时检查源代码的变更,如果源代码有变更, 它就是执行设定的任务,如果源代码没有变更则不执行,还有其它的方 式,都 要根据实际需求去选择对应的方式。

 

好了学习 python 的 pytest 框架需要的基础知识和学习准备就介绍到这里了,希望能给初学者一些启发,若有什么不懂的,也可以加QQ群:862672474,欢迎大家一起来交流讨论。。。。。。。

以上是关于Pytest测试框架知识的主要内容,如果未能解决你的问题,请参考以下文章

学习 python 的 pytest 框架需要的基础知识和学习准备

科班出身...学习自动化测试,面对复杂技术知识点,不禁疑惑:我该从何学起?

按书上学写测试pytest

pytest -- 中文文档

接口测试和单元测试

pytest测试框架