随笔分类 -  pytest

摘要:一、前言 平常在做功能测试的时候,经常会遇到某个模块不稳定,偶然会出现一些bug,对于这种问题我们会针对此用例反复执行多次,最终复现出问题来。 自动化运行用例时候,也会出现偶然的bug,可以针对单个用例,或者针对某个模块的用例重复执行多次。 二、pytest-repeat pytest-repeat 阅读全文
posted @ 2020-05-12 09:55 哔仙女 阅读(1603) 评论(1) 推荐(0)
摘要:一、前言 平常我们手工测试用例非常多时,比如有1千条用例,假设每个用例执行需要1分钟。如果一个测试人员执行需要1000分钟才能执行完,当项目非常紧急的时候, 我们会用测试人力成本换取时间成本,这个时候多找个小伙伴把任务分成2部分,于是时间缩减一半。如果是十个人一起执行,1000个用例理论上只需100 阅读全文
posted @ 2020-05-12 09:17 哔仙女 阅读(533) 评论(0) 推荐(0)
摘要:一、前言 “80%的bug集中在20%的模块,越是容易出现bug的模块,bug是越改越多”平常我们做手工测试的时候,比如用100个用例需要执行,其中10个用例失败了。 当开发修复完bug后,我们一般是重点测上次失败的用例。 那么自动化测试也一样,当用例特别多时,为了节省时间,第一次部分用例失败了,修 阅读全文
posted @ 2020-05-12 08:36 哔仙女 阅读(487) 评论(0) 推荐(0)
摘要:一、前言 一个测试工程下是可以有多个conftes.py文件,一般在工程根目录放一个conftest.py起到全局作用。 不同的测试子目录也可以放conftest.py,作用范围只在该层级以及以下目录生效。 二、conftest层级关系 在web_conf_py项目工程下建两个子项目baidu,bl 阅读全文
posted @ 2020-05-11 18:04 哔仙女 阅读(568) 评论(0) 推荐(0)
摘要:一、fixture作用范围 fixture里面有个scope参数可以控制fixture的作用范围:session>module>class>function fixture(scope="function", params=None, autouse=False, ids=None, name=No 阅读全文
posted @ 2020-05-11 10:23 哔仙女 阅读(667) 评论(0) 推荐(0)
摘要:一、使用多个fixture 如果用例需要用到多个fixture的返回数据,fixture也可以return一个元组,list或字典,然后从里面取出对应的数据。 import pytest @pytest.fixture() def user(): print("获取用户名") a = "admin" 阅读全文
posted @ 2020-05-09 16:41 哔仙女 阅读(1106) 评论(0) 推荐(0)
摘要:一、前言 fixture是pytest的核心功能,也是亮点功能,熟练掌握fixture的使用方法,pytest用起来才会得心应手! 二、fixture简介 fixture的目的是提供一个固定基线,在该基线上测试可以可靠地和重复地执行。fixture提供了区别于传统单元测试(setup/teardow 阅读全文
posted @ 2020-05-09 13:47 哔仙女 阅读(2907) 评论(0) 推荐(0)
摘要:一、前言 pytest配置文件可以改变pytest的运行方式,它是一个固定的文件pytest.ini文件,读取配置信息,按指定的方式去执行。 二、ini配置文件 pytest里面有些文件是非test文件 (1)pytest.ini pytest的主配置文件,可以改变pytest的默认行为 (2)co 阅读全文
posted @ 2020-05-09 10:20 哔仙女 阅读(1186) 评论(0) 推荐(0)
摘要:一、前言 平常写自动化会写一些前置fixture操作,用例需要用到直接传该函数的参数名称就行了。当用例很多的时候,每次都传这个参数,会比较麻烦。 fixture里面有个参数autouse,默认是Fasle没开启的,可以设置为True开启自动使用fixture功能,这样用例就不用每次都去传参了。 调用 阅读全文
posted @ 2020-05-08 17:28 哔仙女 阅读(1480) 评论(0) 推荐(0)
摘要:一、前言 当用例a失败的时候,如果用例b和用例c都是依赖于第一个用例的结果,那可以直接跳过用例b和c的测试,直接给他标记失败xfail 用到的场景,登录是第一个用例,登录之后的操作b是第二个用例,登录之后操作c是第三个用例,很明显三个用例都会用到登录操作。 例,很明显三个用例都会用到登录操作。 如果 阅读全文
posted @ 2020-05-08 08:57 哔仙女 阅读(764) 评论(0) 推荐(0)
摘要:一、前言 pytest可以支持自定义标记,自定义标记可以把一个web项目划分多个模块,让指定模块模块名称执行。APP自动化的时候,如果想android和ios共用一套代码时,也可以使用标记功能,标明哪些是ios用例,哪些是android用例,运行代码时候指定mark名称运行就可以。 二、mark标记 阅读全文
posted @ 2020-05-07 14:19 哔仙女 阅读(731) 评论(0) 推荐(0)
摘要:一、Allure简介 Allure是一款非常轻量级并且非常灵活的开源测试报告生成框架。它支持绝大多数测试框架,例如TestNG、Pytest、JUint等。它简单易用,易于集成。下面就Pytest如何与Allure集成做详细介绍。 二、配置环境 1.安装pytest pip3 install pyt 阅读全文
posted @ 2020-05-07 08:36 哔仙女 阅读(1860) 评论(0) 推荐(0)
摘要:一、前言 为了提高代码的复用性,我们在写用例的时候,会用到函数,然后不同的用例去调用这个函数。 比如登录操作,大部分用例都会先登录,那就需要把登录单独抽出来写一个函数,其他用例全部都调用这个登录函数就行。 但是登录的账号不能写死,有时候我想用账号1去登录,执行用例1,用账号2去登录执行用例2,所以需 阅读全文
posted @ 2020-05-06 11:20 哔仙女 阅读(1537) 评论(0) 推荐(0)
摘要:一、前言 pytest.mark.skip可以标记无法在某些平台上运行的测试功能,或者你希望是吧的测试功能。 skip意味着只有满足某些条件时才希望测试通过,否则pytest应该跳过运行测试。常见示例是在非windows平台上跳过仅限windows的测试,或跳过测试依赖于当前不可用的外部资源(例如: 阅读全文
posted @ 2020-05-05 20:42 哔仙女 阅读(1580) 评论(0) 推荐(0)
摘要:一、前言 断言是自动化测试基本最重要的一步,一个用例没有断言,就等于失去自动化测试的意义了。什么是断言呢? 简单来讲就是实际结果和期望结果去对比,符合预期就测试pass,不符合预期结果就测试failed 二、assert pytest允许您使用标准python断言来验证python测试中的期望和值。 阅读全文
posted @ 2020-05-05 11:42 哔仙女 阅读(1405) 评论(0) 推荐(0)
摘要:一、前言 命令行参数是根据命令行选项将不同的值传递给测试函数,比如平常在cmd执行“pytest--html=report.html”,这里面的“--html=report.html”就是从命令行传入参数 对应的参数名称是html,参数值是report.html 二、conftest配置参数 1.首 阅读全文
posted @ 2020-05-05 10:25 哔仙女 阅读(660) 评论(0) 推荐(0)
摘要:一、前言 pytest.mark.parameterize装饰器可以实现测试用例参数化。 二、parametrizing 1.这里是一个实现检查一定的输入和期望输出测试功能的典型例子 import pytest @pytest.mark.parametrize("test_input,expecte 阅读全文
posted @ 2020-05-05 09:33 哔仙女 阅读(865) 评论(0) 推荐(0)
摘要:一、前言 fixture的teardown操作并不是独立的函数,用yield关键字呼唤teardown操作。上一次实现了在每个用例之前执行初始化操作,那么用例执行完之后,如需要清除数据(或还原)操作,可以使用yield来实现。fixture通过scope参数控制setup级别,既然有setup作为用 阅读全文
posted @ 2020-05-04 17:31 哔仙女 阅读(4070) 评论(0) 推荐(1)
摘要:一、前言 用例加setup和teardown可以实现在测试用例之前或之后加入一些操作,但是这种是整个脚本全局生效的,如果我想实现以下场景: 用例1需要先登录,用例2不需要登录,用例3需要先登录。很显然这无法使用setup和teardown来实现了。 学习目标:自定义测试用例的预置条件。 二、fixt 阅读全文
posted @ 2020-04-30 15:14 哔仙女 阅读(1498) 评论(0) 推荐(1)
摘要:一、简介 setup和teardown是每次用例开始前和结束后都去执行一次。 更高级一点的,setupClass和teardownClass,需要配合@classmethod装饰器一起使用,在做selenium自动化的时候,它的效率尤为突出,可以只启动一次浏览器执行多个用例。 pytest框架也有类 阅读全文
posted @ 2020-04-29 18:05 哔仙女 阅读(1028) 评论(0) 推荐(0)