pytest 系列
文章平均质量分 82
pytest框架从基础使用到实战进阶相关技术分享
测试之路king
8年软件测试生涯,丰富的功能测试、接口测试、自动化测试、性能测试方面的工作经验,对linux、数据库、fiddler,postman,python自动化、性能测试等有丰富的实际使用经验
展开
-
Pytest+Yaml+Excel 接口自动化测试框架
1.通过session会话方式,解决了登录之后cookie关联处理2.框架天然支持接口动态传参、关联灵活处理3.支持Excel、Yaml文件格式编写接口用例,通过简单配置框架自动读取并执行4.执行环境一键切换,解决多环境相互影响问题5.支持http/https协议各种请求、传参类型接口6.响应数据格式支持json、str类型的提取操作7.断言方式支持等于、包含、大于、小于、不等于等方8.框架可以直接交给不懂代码的功能测试人员使用,只需要安装规范编写接口用例就行原创 2022-01-11 23:43:15 · 10953 阅读 · 0 评论 -
Pytest测试框架系列 - pytest.main()运行测试用例详解
前言我们在看见每个项目都有个入口文件,用来启动项目,但是在我们的自动化项目里面,特别是前面使用过unittest框架的人来说特别熟悉,在项目新建一个 main.py 或者 run_all.py文件,使用python main.py 或者python run_all.py 执行测试。在pytest框架也有一个入口,那就是 pytest.main(),可以作为用例执行入口,下面我们对pytest.main()进行讲解。pytest.main()pytest.main() 源码def main(原创 2021-08-21 10:33:53 · 16397 阅读 · 1 评论 -
Pytest测试框架系列 - pytest 常见问题解决方案汇总
问题列表如何在pycharm 里面使用pytest运行用例(默认为unittest)遇见 pytest: error: unrecognized arguments: xxxparametrize 参数化时使用ids时控制台中文不能正常显示,显示为unicode编码样式(不是乱码)pytest-html报告中中文标题显示乱码解决pytest.ini 配置日志文件每次都覆盖上一次的日志pytest.ini 配置每天生成一个日志文件pytest.ini 文件存放路径问题问题一:如何在pych原创 2021-08-06 08:34:09 · 9043 阅读 · 2 评论 -
Pytest测试框架系列 - 通过hooks函数pytest_terminal_summary 通过企业微信推送简单测试报告
前言正常来说我们自动化测试执行完成之后,都会发送一个报告,以便相关人员查看测试情况,但是对于经常运行的用例如果每次去打开测试报告查看测试结果,大家就会慢慢不去关注测试结果,所以现在大多数都会采用简单的测试结果提醒,有问题再去查看详细的报告。通过企业微信、钉钉、短信等发送推送消息(常用)通过发送邮件如果 通过企业微信、钉钉、短信等发送推送消息 方式,我们就需要获取当前测试完成后执行情况,在pytest 框架里面有一个Hooks函数 pytest_terminal_summary 就可以轻松获取到执原创 2021-07-28 08:31:15 · 2715 阅读 · 2 评论 -
Pytest测试框架系列 - pytest 添加自定义命令行参数
前言我们先来考虑一下如果存在下面场景,我们在不改变代码的情况实现:一般来说公司存在几套环境,例如回归测试用例,我们需要在不同的环境进行测试,自动化用例有时候也需要支持在不同测试环境运行我们可能想到:配置文件里面指定,在不同环境运行之前,进行测试地址修改在执行脚本命令时,动态带参数本次我们讲解pytest框架的自定义命令行参数,也就是 在执行脚本命令时,动态带参数这里需要用到:pytest_addoption 注册参数config.getoption 获取命令行参数pytest原创 2021-07-27 14:09:02 · 2636 阅读 · 0 评论 -
Pytest测试框架系列 - pytest_runtest_makereport 配合自动提交缺陷!
前言我们都知道测试用例执行失败后,我们会提交相应缺陷到公司缺陷平台,那我们自动化测试完成了,对于执行失败的用例,是不是也需要将失败的用例也提交相应缺陷呢,这种肯定的。作为测试人员,提交缺陷是我们工作的必不可缺少的部分,如何测试人员不提交缺陷了,那就代表已经脱离了测试人员的职责了。那么在做自动化测试的时候,肯定希望如果用例执行失败了就自动提交缺陷,这样大大减少了人工再去提交缺陷的时间成本,那我们该怎么做呢,我们在这里面需要考虑一些问题。在用例执行过程中,如何获取用例执行状态如何对接缺陷系统,提交缺陷原创 2021-07-20 23:36:07 · 2267 阅读 · 2 评论 -
Pytest测试框架系列 - allure 报告进阶使用
前言上一篇文章我们讲解了pytest allure的使用,但是还有一些知识点我们还没有学会,下面让我们继续学习,更加灵活的使用allure报告。进阶功能命令行参数与参数化 parametrize 结合使用allure.dynamic 动态添加属性allure 报告显示环境配置信息命令行参数前面文章我们学习了很多命令行参数,这里说的是allure相关的命令行参数,主要用来用例筛选,跟前面用例标记一样,这里的标记不需要我们新建标记,由于我们在使用allure属性的时候用例已经标记。我们可以原创 2021-07-17 08:25:38 · 1646 阅读 · 1 评论 -
Pytest测试框架系列 - 生成图文丰富的 allure 自动化测试报告,让你的领导更加满意!
前言前面文章写了使用 pytest-html 插件生成报告,那为什么还要讲解使用 allure 来生成报告呢?从 pytest-html 生成的报告看出来还是缺少一些报告的元素,如直观的展示不同的维度统计用例执行结果图表,还有就是领导喜欢直观、简洁、数据清晰的测试报告,相信大家都喜欢这样的报告,所以为了大家的发展,不管怎么样都要学会更好看的报告。allure 简介官方说明地址:https://docs.qameta.io/allure/#_aboutAllure FrameworkAllur原创 2021-07-14 23:17:53 · 1623 阅读 · 7 评论 -
pytest测试框架系列 - 学会使用配置文件pytest.ini,带来的效果居然这么好?
前言如果熟悉其他框架的同学都知道,每个框架都有它自己的配置文件,只需要做简单的配置就可以实现一些常用的功能,减少我们编程的时间。pytest 配置文件可以改变 pytest 的运行方式,它是一个固定的文件 pytest.ini文件,读取配置信息,按指定的方式去运行框架的功能,我们能够配置哪些功能下面详细说明。pytest.ini 详解首先我们怎么知道配置文件,可以配置哪些功能呢?这就需要我们看帮助文档,一般都是--help会出来可以操作的功能说明,下面我们先在命令行窗口输入: pytest --he原创 2021-07-12 21:06:45 · 1278 阅读 · 5 评论 -
pytest测试框架系列 - 一文搞定pytest-html自定义优化HTML测试报告!
前言在我们自动化测试过程中,我们最终肯定会生成一个测试报告,测试报告可能为一个txt、xml、json文件、Excel或者HTML报告,大家基本上都偏向于HTML报告,pytest 提供了pytest-html和allure的HTML报告。本章节我们讲解使用pytest-html 插件生成HTML报告。pytest-html用法说明:pytest-html是pytest插件生成一个HTML测试报告。安装当前环境:python 3.7.0前提条件:pytest (!=6.0.0,>=5.0原创 2021-07-12 08:31:46 · 7781 阅读 · 4 评论 -
pytest测试框架系列 - Pytest pytest-repeat 重复执行用例插件详解
前言场景:有时候我们需要执行的全部用例或者部分用例想要重复执行多次执行的场景,我们随着这个需求往下看就能得到解决。Pytest 给我们提供了了一个很好的插件 pytest-repeat,简单添加一些参数就可以实现,下面就让我们完整的学习这个插件相关的功能。pytest-repeat 详解用法:添加参数 --count=num在需要重复执行的用例上使用装饰器 @pytest.mark.repeat(num)添加参数方式 --count=num示例:# !/usr/bin/python3原创 2021-07-11 06:09:04 · 3283 阅读 · 1 评论 -
pytest测试框架系列 - Pytest pytest-xdist 分布式、多进程并发执行用例你会用吗?
前言场景:随着项目越来越大、复杂,用例越来越多,串行的执行就需要太多的时间,就像测试部门一样,项目太多,项目完成的时间就越来越久,这就需要我们招聘更多的人,同时来测试项目,这样就提高了测试效率,但是需要尽量减少项目测试之间的关联性、耦合性。Pytest 框架提供了一个pytest-xdist 插件帮我们做了这件事情,我们只需要简单的使用即可。用例需要并发执行注意点每条用例是独立的,没有依赖关系,完全解耦,用例可以完全独立运行用例执行没有顺序,随机顺序都能正常执行每个用例都能重复运行,运行结果不原创 2021-07-10 16:14:24 · 2926 阅读 · 1 评论 -
pytest测试框架系列 - Pytest 用例之间相互依赖你会处理吗?
前言场景:存在一个增删改查相关的操作功能,当增加操作用例失败时,删除、修改、查询操作不执行,这种场景该怎么来处理呢?Pytest 框架提供了一个pytest-dependency 插件帮我们做了这件事情,我们只需要简单的使用即可。pytest-dependency 详解 (建议掌握程度:☆☆☆☆)安装在命令行窗口输入: pip install pytest-dependency查看安装版本:pip show pytest-dependency使用使用方法 : 用 @pytest.m原创 2021-07-10 00:19:47 · 3264 阅读 · 4 评论 -
pytest测试框架系列 - Pytest 用例执行顺序你会控制吗?
前言正常情况下,pytest 用例默认执行顺序是自上而下的,对于一些有上下文依赖关系的用例,我们可以通过 pytest-ordering 插件来控制用例执行顺序,也可以通过setup、teardown和fixture来解决pytest-ordering 详解 (建议掌握程度:☆☆)安装在命令行窗口输入: pip install pytest-ordering查看安装版本:pip show pytest-ordering使用使用方法 : @pytest.mark.run(order=原创 2021-07-09 23:25:02 · 1994 阅读 · 2 评论 -
pytest测试框架系列 - Pytest pytest-assume 多重校验神器如何使用你知道吗?
前言注意点:pytest-assume 导包和使用都已经改变,源码注释未进行更新场景在一个支付场景里面,我们在商品界面进行了支付成功,想要看下支付金额是否正确、订单记录是否正确、剩余金额是否正确、支付页面金额显示等就是一条用例执行完成,存在多个检查点如果使用普通的断言方法就是写多个 assert 进行断言这种情况存在一个弊端,如果其中一条断言失败了,其他断言就不会执行,这与我们测试的初衷就不一样。为了解决这个问题,我们引入多重断言校验 pytest-assume 插件pytest-as原创 2021-07-09 22:21:24 · 1200 阅读 · 0 评论 -
pytest测试框架系列 - Pytest 失败重跑pytest-rerunfailures插件详解
前言当服务器不稳定,偶尔出现波动、本地网络偶尔出现不稳定等情况,导致用例执行失败,这种情况大家都觉得用例标记失败不太合理,想要在用例执行失败后延时一些时间再次进行执行,如果超过3次仍然失败,则表明用例执行失败;所以就需要失败重跑功能。pytest-rerunfailures 安装前提条件: pytest (>=5.3) 和python >=3.6安装:pip install pytest-rerunfailures查看安装版本:pip show pytest-rerunfailur原创 2021-07-08 23:54:19 · 3446 阅读 · 3 评论 -
pytest测试框架系列 - 正确的使用参数化parametrize,让你的代码更加优雅、简洁!
前言我们先看下如果测试用例,我们在模拟用户名和密码进行登录功能,你们觉得有什么问题呢?示例:# !/usr/bin/python3# _*_coding:utf-8 _*_""""# @Time :2021/7/7 21:37# @Author : king# @File :test_params.py# @Software :PyCharm# @blog :https://blog.csdn.net/u010454117# @WeChat Official Acc原创 2021-07-08 16:42:03 · 814 阅读 · 0 评论 -
pytest测试框架系列 - Pytest 自定义mark标记筛选用例实战
为什么要自定义标记需求:原创 2021-07-06 00:11:38 · 722 阅读 · 0 评论 -
pytest测试框架系列 - Pytest skip和skipif 跳过用例看这篇就够了!
前言skip和skipif,看名字就是跳过测试的意思,主要用于不想执行的代码,标记后,标记的代码不执行。希望满足某些条件才执行某些测试用例,否则pytest会跳过运行该测试用例实际常见场景:根据平台不同执行测试、跳过依赖、功能未完成预期不能执行的测试@pytest.mark.skip说明:...原创 2021-07-05 21:46:33 · 1442 阅读 · 0 评论 -
pytest测试框架系列 - Pytest Fixture和conftest.py还能这样使用?
前言Fixture是pytest的非常核心功能之一,在不改变被装饰函数的前提下对函数进行功能增强,经常用于测试用例前置和后置工作。与setup/teardown类似,但更强大灵活。fixture的优势fixture命名方式灵活,不局限于 setup 和teardown 那几个命名规则conftest.py 配置里可以实现数据共享,能够自动搜索需要的fixturefixture 配置不同的参数可以轻松实现跨文件、session会话共享fixture工作原理在普通函数上使用@Pytest.f原创 2021-07-03 19:05:09 · 573 阅读 · 1 评论 -
pytest测试框架系列 - pytest 断言assert使用
前言测试用例的预期结果是用例不可缺少的一部分,那么断言就是自动化测试不可缺少的一步,一个没有断言的用例,自动化测试的就没有意义了。那什么是断言呢?简单来讲就是实际结果和期望结果去对比,符合预期那就测试pass,不符合预期那就测试 failedPytest里面使用关键字assert,断言为一个表达式,只要表达式的最终结果为True,那么断言通过,用例执行成功,否则用例执行失败Assert 常用断言方式pytest里面断言实际上就是python里面的assert断言方法,常用的有以下几种ass原创 2021-07-02 22:12:01 · 2575 阅读 · 1 评论 -
pytest测试框架系列 - setup和teardown的详细讲解
前面使用过unittest的都知道,setup和teardown是用来处理用例的前置工作和清理工作,其中还有setupclass和teardownclass是保证执行所以的用例都只执行1次前置和后置,使用起来非常方便,对于强大的pytest测试框框,给我们提供了10中类似方法。模块级别:setup_module、teardown_module函数级别:setup_function、teardown_function,不在类中的方法原创 2021-07-02 16:50:32 · 1586 阅读 · 0 评论 -
pytest测试框架系列 - 快速入门和简单使用
前言python常用测试框架有Unittest、Doctest、Nose级Pytestunittest大部分人都非常清楚,都用来做自动化,无论是UI还是接口自动化Nose是对unittest的扩展,使得python的测试更加简单。nose自动发现测试代码并执行,nose提供了大量的插件,但是很多插件不支持python3doctest是python自带的一个模块,你可以把它叫做“文档测试”(doctest)模块,使用起来不太方面,被大家放弃使用pytest是基于unittest开发的另一款更高级更原创 2021-07-01 23:07:44 · 857 阅读 · 2 评论