序 在之前,我写过一个系列“从零开始搭建一个简单的ui自动化测试框架(pytest+selenium+allure)”,在这个系列里,主要介绍了如何从零开始去搭建一个可用的自动化工程框架,但是还缺乏了一些细节的补充,例如对于自动化测试而言,如何提高其测试的稳定性? 本篇文章,将会和读者一起探讨这个问题. 装饰器与出错重试机制 谈到稳定性,不得不说的就是“出错重试”机制了,在自动化测试中,由于环境一般都是测试环境,经常会有各种各种的抽风情况影响测试结果,这样就为测试的稳定性带来了挑战,毕竟谁也不想…
废话 最近在自己学习接口自动化测试,这里也算是完成一个小的成果,欢迎大家交流指出不合适的地方,源码在文末 问题 整体代码结构优化未实现,导致最终测试时间变长,其他工具单接口测试只需要39ms,该框架中使用了101ms,考虑和频繁读写用例数据导致 环境与依赖 名称 版本 作用 python 3.7.8 pytest 6.0.1 底层单元测试框架,用来实现参数化,自动执行用例 allure-pytest 2.8.17 allure与pytest的插件可以生成allure的测试报告 jsonpath…
自动化测试框架 - pytest pytest是Python最流行的单元测试框架之一, 帮助更便捷的编写测试脚本, 并支持多种功能复杂的测试场景, 能用来做app测试也能用作函数测试 官方文档: https://docs.pytest.org/en/latest/ pytest具有以下优点: 允许使用assert进行断言 自动识别测试脚本.类.函数 可用于管理小型或者参数类型的测试数据或资源 兼容unittest和nose测试框架 支持Python2.7/Python3.4+ 丰富的插件支持,超…
最近在学习web自动化,所以在这里总结一下pytest框架. 其实pytest 和 unittest 都是自动化测试框架,但是pytest更好用一些,有以下几个优点:1)可以根据标签执行用例:2)??? 一.首先需要安装pytest ,使用pip命令就可以: 二.pytest的标签功能:在用例前可以添加标签,如冒烟用例,XX用例.然后执行时可以选择仅执行冒烟用例: 三.用例的搜索规则: 在项目目录下执行pytest 命令:pytest会自动搜索以"*_test.py”或“test_*.py”命名…
一.简介 pytest+allure+jenkins进行接口测试.生成测试报告.结合jenkins进行集成. pytest是python的一种单元测试框架,与python自带的unittest测试框架类似,但是比unittest框架使用起来更简洁,效率更高 allure-pytest是python的一个第三方库.用于连接pytest和allure,使它们可以配合在一起使用. allure-pytest基于pytest的原始执行结果生成适用于allure的json格式结果.该json格式结果可以用…
实战教程篇 前言 这边就不教大家怎么用 pytest 写项目了哦,下面有系列文章能帮助你快速入门 Pytest + Allure 这一篇教程主要是教如何从 0 到 1 搭建自动化测试的持续集成环境 后续会补充持续集成相关理论知识 四步走 使用 Jenkins 镜像创建容器,并搭建 Python + Pytest +Allure 的自动化测试环境 https://www.cnblogs.com/poloyy/p/13954637.html 在 Jenkins 容器上的搭建持续集成环境和完成自动化测…
这里我们单独来看下关于如何生存测试报告 准备测试代码如下: #coding: utf- import pytest @pytest.fixture() def login(): print '输入账号.密码登录' def test_step_1(login): print '用例步骤1:登录之后其它动作111' def test_step_2(): #不需要登录 print '用例步骤2: 不需要登录, 操作222' def test_step_3(login): print '用例步骤3:登录…
Fixture介绍 fixture是pytest特有的功能,它用pytest.fixture标识,定义在函数前面.在编写测试函数的时候,可以将此函数名称做为传入参数,pytest将会以依赖注入方式,将该函数的返回值作为测试函数的传入参数. fixture有明确的名字,在其他函数,模块,类或整个工程调用它时会被激活. fixture是基于模块来执行的,每个fixture的名字就可以触发一个fixture的函数,它自身也可以调用其他的fixture. 我们可以把fixture看做是资源,在你的测试用…
使用assert语句进行断言 pytest允许使用标准的python assert语法,用来校验expectation and value是否一致 代码演示: def func(): def test_func(): assert func() == 执行结果: (wda_python) bash-3.2$ pytest -q test_assert.py F [%] ================================================================…
前言:很多人在写完代码一段时间后回过头看代码,很可能忘记了自己写的函数需要传什么参数,返回什么类型的结果,就不得不去阅读代码的具体内容,降低了阅读的速度,加上Python本身就是一门弱类型的语言,这种现象就变得更加的严重,而typing这个模块很好的解决了这个问题. typing模块的作用: 类型检查,防止运行时出现参数和返回值类型不符合. 作为开发文档附加说明,方便使用者调用时传入和返回参数类型. 该模块加入后并不会影响程序的运行,不会报正式的错误,只有提醒. 注意:typing模块只有在py…