摘要:前言 写自动化测试项目的时候,经常要用到配置文件,比如读取数据库相关的配置,希望单独放到config配置文件,方便维护。 pytest的内置fixture可以获取到配置相关的信息,request.config.rootdir 用于获取项目的根目录。 config配置文件 在django下操作的大概步
阅读全文
摘要:前言 最近学习完了requests、pytest,实践出真知。下面以禅道为例。docker方式搭建禅道 一、Pycharm中创建项目结构 1.新建一个工程,工程名称自己定义,如:zentao 2.在工程的根目录下新建一个conftest.py(测试用例的一些fixture配置)和pytest.ini
阅读全文
摘要:pytest是一个使构建简单和可扩展测试变得容易的框架。 命名 文件名必须是test_开头 或_test结尾的.py文件 类名必须是Test开头 测试函数以test_开头;_test结尾不可以(如b_test()); 文件夹(包名)名可以随意命名 cmd下执行测试 1.执行当前cmd所在目录下的所有
阅读全文
摘要:前言 什么是元数据?元数据是关于数据的描述,存储着关于数据的信息,为人们更方便地检索信息提供了帮助。pytest 框架里面的元数据可以使用 pytest-metadata 插件实现。文档地址https://pypi.org/project/pytest-metadata/ pytest-metada
阅读全文
摘要:前言 参数化是自动化测试里面必须掌握的一个知识点,用过unittest框架的小伙伴都知道使用ddt来实现测试用例的参数化。 pytest测试用例里面对应的参数可以用parametrize实现,随着用例的增多,我们的需求也会越来越多,那么如何在fixture中使用参数呢? fixture源码 先看下f
阅读全文
摘要:前言 使用pytest.mark.parametrize参数化的时候,加ids参数用例描述有中文时,在控制台输出会显示unicode编码,中文不能正常显示。 使用pytest_collection_modifyitems钩子函数,对输出的item.name和item.nodeid重写编码。 问题描述
阅读全文
摘要:前言 pytest如何执行不是test开头的用例?如执行xxx.*.py这种文件的用例。 pytest.ini配置文件可以修改用例的匹配规则。 pytest命令行参数 cmd打开输入pytest -h查看命令行参数找到[pytest] ini-options python_files(args)匹配
阅读全文
摘要:前言 pytest的参数化(parametrize)可以实现只需要维护测试数据,就能生成不同的测试用例目的。可以在参数化的时候加ids参数对每个用例说明使用场景。 最终我们希望在allure报告上能详细的展示出每个用例的标题描述,这样才能更直观的知道每个用例是干什么的。 参数化parametrize
阅读全文
摘要:前言 一般流程性的测试用例,写成自动化用例时,步骤较多写起来会比较长。在测试用例里面添加详细的步骤有助于更好的阅读,也方便报错后快速的定位到问题。 举个常见的测试场景用例:从登陆开始,到浏览商品添加购物车,最后下单支付。 用例步骤:1.登陆,2.浏览商品,3.添加购物车,4.生成订单,5.支付成功
阅读全文
摘要:前言 测试用例在设计的时候,我们一般要求不要有先后顺序,用例是可以打乱了执行的,这样才能达到测试的效果。 有些同学在写用例的时候,用例写了先后顺序,有先后顺序后,后面还会有新的问题(如:上个用例返回数据作为下个用例传参,等等一系列的问题) github上有个pytest-ordering插件可以控制
阅读全文
摘要:前言 pytest的断言失败后,后面的代码就不会执行了,通常一个用例我们会写多个断言,有时候我们希望第一个断言失败后,后面能继续断言。 pytest-assume插件可以解决断言失败后继续断言的问题。github地址:https://github.com/astraw38/pytest-assume
阅读全文
摘要:前言 pytest+allure是最完美的结合了,关于allure的使用,本篇做了一个总结。 allure报告可以包含很多详细的信息描述测试用例,包括epic、feature、story、title、issue、testcase、severity等 allure用例描述 测试案例 pytest结合a
阅读全文
摘要:前言 我们在做功能测试的时候,执行完一轮测试用例,输出测试报告的时候,会有统计缺陷的数量和等级。在做自动化测试的过程中,当你的测试用例越来越多的时候,如果执行一轮测试发现了几个测试不通过,我们也希望能快速统计出缺陷的等级。 pytest结合allure框架可以对用例的等级做详细的划分。 用例等级 a
阅读全文
摘要:allure-pytest环境准备 windows环境相关: python 3.7版本 pytest 5.4.3版本 allure-pytest 2.8.17 最新版 使用pip install allure-pytest安装 allure命令行工具 allure是一个命令行工具,需要去github
阅读全文
摘要:前言 平常在做功能测试的时候,经常会遇到某个模块不稳定,偶然会出现一些bug,对于这种问题我们会针对此用例反复执行多次,最终复现出问题来。 自动化运行用例时候,也会出现偶然的bug,可以针对单个用例,或者针对某个模块的用例重复执行多次。 pytest-repeat pytest-repeat是pyt
阅读全文
摘要:前言 "80%的bug集中在20%的模块,越是容易出现bug的模块,bug是越改越多"平常我们做手工测试的时候,比如用100个用例需要执行,其中10个用例失败了,当开发修复完bug后,我们一般是重点测上次失败的用例。那么自动化测试也一样,当用例特别多时,为了节省时间,第一次部分用例失败了,修复完之后
阅读全文
摘要:前言 一个测试工程下是可以有多个conftest.py的文件,一般在工程根目录放一个conftest.py起到全局作用。 在不同的测试子目录也可以放conftest.py,作用范围只在该层级及以下目录生效。 conftest层级关系 在web_item_py项目工程下建两个子项目(包)QQ、UC,并
阅读全文
摘要:fixture作用范围 fixture里面有个scope参数可以控制fixture的作用范围:session > module > class > function fixture(scope="function", params=None, autouse=False, ids=None, nam
阅读全文
摘要:使用多个fixture 如果用例需要用到多个fixture的返回数据,fixture也可以return一个元组、list或字典,然后从里面取出对应数据。 #test_fix1.py import pytest @pytest.fixture() def user(): a="admin" b="12
阅读全文
摘要:前言 fixture是pytest的核心功能,也是亮点功能,熟练掌握fixture的使用方法,pytest用起来才会得心应手! fixture简介 fixture的目的是提供一个固定基线,在该基线上测试可以可靠地和重复地执行。fixture提供了区别于传统单元测试(setup/teardown)有显
阅读全文