接口测试
文章平均质量分 80
各种接口测试框架与落地
公众号-测试生财
分享各类测试技术和资源,请关注微信公众号:测试生财。
展开
-
pytest失败重跑插件: pytest-rerunfailures使用与坑(全网独家精华)
背景在编写接口case的时候,我们常遇到一个这样的问题:测试环境不稳定偶发接口超时(和服务无关,纯粹是环境问题),然后执行接口case也因此偶发失败。比如同一个接口case跑五次,其中有两次失败,另外三次都是成功的,这种偶发性的环境问题就需要我们手动重跑(还不一定能够通过)。有没有一个比较好的机制,保证case能够尽最大努力通过测试呢?这里我们介绍pytest的一个失败重跑插件:pytest-rerunfailures介绍pytest-rerunfailures是一个通过重跑机制来消除不原创 2021-01-27 08:02:14 · 5738 阅读 · 0 评论 -
pytest-assume插件(全网最详细解释):多重断言执行
背景使用pytest进行断言判断的时候,为了用例的精准性,经常会多个方面进行断言,比如如下:断言1:断言响应的http的状态断言2:断言响应返回的code值断言3:断言响应返回的json中的data字段是否符合预期。如果使用原生python的assert,就会遇到一个断言失败则全部失败的情况。比如说,断言1结果为Failed,那么断言2和断言3都不会被执行。我们希望断言2和断言3继续执行,这样我们能获取更多的断言结果来判断出接口哪里出了问题,能够更好地进行问题定位,这时候该本文主角出原创 2021-01-25 09:09:20 · 4276 阅读 · 1 评论 -
pytest踩坑记:NameError: name ‘pytest‘ is not defined
背景在使用pytest-ordering插件的时候,运行case报错:NameError: name 'pytest' is not defined。实际case如下:test_demo.py@pytest.mark.run(order=2)def test_login(): assert True@pytest.mark.run(order=1)def test_reg(): assert True然后执行pytest:运行如下图。分析我的pytest原创 2021-01-23 09:48:30 · 3356 阅读 · 4 评论 -
pytest-ordering:指定pytest的case运行顺序的插件
背景在写接口或功能自动化case的时候,会遇到一些case有先后执行顺序的场景。比如:注册->登陆,先调用注册接口在数据库里面生成用户名和密码,然后使用登陆接口验证登陆。在pytest里,如果注册和登陆分别是两个testcase,默认执行执行顺序是从前到后的。例子有一个pytest的测试case用例:test_login.py#/usr/bin/env python3import pytestdef test_login(): assert Truedef tes原创 2021-01-21 09:05:43 · 2391 阅读 · 2 评论 -
pytest中print的坑
背景最近在使用pytest框架写测试用例的时候,为了调试case,我在其中使用了print来打印相关的变量值,如下图:分析图中的setup_class和setup_method分别在类开始时和用例执行前被调用,但是实际运行pytest xxx.py的时候,print函数打印的信息没有输出到控制台!我最开始怀疑是把setup函数放错位置了,对照官网文档查看了下,位置并没有放错。那问题出在哪里呢?难道pytest默认不会输出print语句吗?然后我又去网上搜一圈,才发现pytest确实不原创 2021-01-19 08:24:06 · 6460 阅读 · 3 评论 -
pytest测试入门篇(ExitCode退出码)
前言在使用pytest框架的时候,经常会涉及对pytest命令进行二次封装,比如写一个shell或者python脚本调用pytest。这样做的好处是可以为用户提供几个运行场景,简化pytest的命令行参数使用。封装脚本需要对实际运行的pytest命令进行退出码判断,然后进行逻辑判断再返回给实际用户查看。那么下面我来分享下pytest的框架退出码。分析如下图,是pytest的退出码的枚举类:ExitCode。执行python3,输入:from pytest import ExitCode原创 2021-01-18 08:42:51 · 1617 阅读 · 0 评论