随笔分类 - pytest
摘要:allure 是一个 report 框架,支持 java 的 Junit/testng 等框架,当然也可以支持 python 的 pytest 框架,也可以集成到 Jenkins 上展示高大上的报告界面。环境准备1.python3.62.windows 环境3.pycharm4.pytest-allure-adaptor5.allure2.7.06.java1.8pytest-allure-ada...
阅读全文
摘要:pytest-HTML 是一个插件,pytest 用于生成测试结果的 HTML 报告。兼容 Python 2.7,3.6pytest-html1.github 上源码地址【https://github.com/pytest-dev/pytest-html】2.pip 安装> pip install
阅读全文
摘要:doctest 从字面意思上看,那就是文档测试。doctest 是 python里面自带的一个模块,它实际上是单元测试的一种。官方解释:doctest 模块会搜索那些看起来像交互式会话的 Python 代码片段,然后尝试执行并验证结果doctest 测试用例可以放在两个地方 函数戒者方法下的注释里面 模块的开头 案例先看第一个案例,将需要测试的片段,标准格式,需要运行的代码前面加>>>...
阅读全文
摘要:pytest 配置文件可以改变 pytest 的运行方式,它是一个固定的文件 pytest.ini 文件,读取配置信息,按指定的方式去运行。 ini 配置文件pytest 里面有些文件是非 test 文件 pytest.ini pytest 的主配置文件,可以改变 pytest 的默认行为 conftest.py 测试用例的一些 fixture 配置 __init__.py 识别...
阅读全文
摘要:命令行参数是根据命令行选项将不同的值传递给测试函数,比如平常在 cmd 执行”pytest —html=report.html”,这里面的”—html=report.html“就是从命令行传入的参数对应的参数名称是 html,参数值是 report.html conftest 配置参数首先需要在 conftest.py 添加命令行选项,命令行传入参数”—cmdopt“, 用例如果需要用到从命令行传...
阅读全文
摘要:为了提高代码的复用性,我们在写用例的时候,会用到函数,然后不同的用例去调用这个函数。比如登录操作,大部分的用例都会先登录,那就需要把登录单独抽出来写个函数,其它用例全部的调用这个登录函数就行。但是登录的账号不能写死,有时候我想用账号 1 去登录,执行用例 1,用账号 2 去登录执行用例 2,所以需要对函数传参。登录函数传参把登录单独成立,写一个函数,传 2 个参数 user 和 psw,写用例的时...
阅读全文
摘要:当用例 a 失败的时候,如果用例 b 和用例 c 都是依赖于第一个用例的结果,那可以直接跳过用例 b 和 c 的测试,直接给他标记失败 xfail用到的场景,登录是第一个用例,登录之后的操作 b 是第二个用例,登录之后操作 c 是第三个用例,很明显三个用例都会走到登录。如果登录都失败了,那后面 2 个用例就没测试必要了,直接跳过,并且标记为失败用例,这样可以节省用例时间。 用例设计pytest 里...
阅读全文
摘要:pytest 可以支持自定义标记,自定义标记可以把一个 web 项目划分多个模块,然后指定模块名称执行。app 自动化的时候,如果想android 和 ios 公用一套代码时,也可以使用标记功能,标明哪些是 ios 用例,哪些是 android 的,运行代码时候指定 mark 名称运行就可以 mark 标记以下用例,标记 test_send_http()为 webtest -v指定的函数节点...
阅读全文
摘要:这是一个快速指南,介绍如何在不同情况下跳过模块中的测试1.无条件地跳过模块中的所有测试:pytestmark = pytest.mark.skip("all tests still WIP")2.根据某些条件跳过模块中的所有测试pytestmark = pytest.mark.skipif(sys.platform == "win32","tests for linux˓→ only"3.如果缺少...
阅读全文
摘要:如果我们要断言它抛的异常是不是预期的,比如执行:1/0,预期结果是抛异常:ZeroDivisionError: division by zero,那我们要断言这个异常,通常是断言异常的 type 和 value 值了。 这里 1/0 的异常类型是 ZeroDivisionError,异常的 valu
阅读全文
摘要:断言是写自动化测试基本最重要的一步,一个用例没有断言,就失去了自动化测试的意义了。什么是断言呢?简单来讲就是实际结果和期望结果去对比,符合预期那就测试 pass,不符合预期那就测试 failed pytest 允许使用标准 Python 断言来验证 Python 测试中的期望和值。例如 断言 f()
阅读全文
摘要:pytest.mark.parametrize 装饰器可以实现测试用例参数化。1.这里是一个实现检查一定的输入和期望输出测试功能的典型例子 import pytest@pytest.mark.parametrize('test_input,expected', [('3+5', 8), ('...
阅读全文
摘要:平常写自动化用例会写一些前置的 fixture 操作,用例需要用到就直接传该函数的参数名称就行了。当用例很多的时候,每次都传返个参数,会比较麻烦。fixture 里面有个参数 autouse,默讣是 Fasle 没开启的,可以设置为True 开启自动使用 fixture 功能,返样用例就丌用每次都去
阅读全文
摘要:yield 遇到异常 1、如果其中一个用例出现异常,不影响 yield 后面的 teardown 执行,运行结果互不影响,并且全部用例执行完之后,yield 呼唤 teardown操作 2.如果在 setup 就异常了,那么是不会去执行 yield 后面的teardown 内容了 3.yield 也
阅读全文
摘要:用例加 setup 和 teardown 可以实现在测试用例之前或之后加入一些操作,但返种是整个脚本全局生效的,如果我想实现以下场景:用例 1 需要先登录,用例 2 不需要登录,用例 3 需要先登录。很显然这就无法用 setup 和 teardown 来实现了。 fixture 优势firture
阅读全文
摘要:用例运行级别 模块级(setup_module/teardown_module)开始于模块始末,全局的 函数级(setup_function/teardown_function)只对函数用例生效(不在类中) 类级(setup_class/teardown_class)只在类中前后运行一次(在类中)
阅读全文
摘要:pytest 是 python 的一种单元测试框架,与python 自带的 unittest测试框架类似,但是比 unittest 框架使用起来更简洁,效率更高。根据pytest 的官方网站介绍,它具有如下特点: 非常容易上手,入门简单,文档丰富,文档中有很多实例可以参考 能够支持简单的单元测试呾复
阅读全文