08 2022 档案

摘要:前言 ①当我们的自动化代码完成之后,通常期望可以在不同的环境进行测试,此时可以将项目系统的URL单独拿出来,并且可以通过pytest.ini配置文件和支持pytest命令行方式执行。 ② pytest-base-url 是一个简单的pytest插件,它通过命令行或配置文件提供可选的基本 URL。 ③ 阅读全文
posted @ 2022-08-29 16:07 观棋不雨 阅读(345) 评论(0) 推荐(0) 编辑
摘要:前言 由于我们在编写测试用例的过程中,可能会调试某些某些测试方法以达到我们的目的;例如调试token是否通过fixture函数写入配置文件达到token持久化存储的目的。 可能出现的问题: ①在合并代码的时候,由于我们的疏忽可能会导致将这些调试脚本也一并上传至git远程代码仓,导致git仓库出现与项 阅读全文
posted @ 2022-08-29 16:03 观棋不雨 阅读(133) 评论(0) 推荐(0) 编辑
摘要:前言 1、pytest 运行全部用例的时候,在控制台会先显示用例的运行结果(.或F);等待用例全部运行完成后最后把报错信息全部一起抛出到控制台。 2、这样我们每次都需要等用例运行结束,才知道为什么报错,不方便实时查看报错信息。 3、 pytest-instafail 插件可以在运行用例的时候,可以实 阅读全文
posted @ 2022-08-25 16:57 观棋不雨 阅读(230) 评论(0) 推荐(0) 编辑
摘要:pytest之多进程运行测试用例(pytest-xdist) 前言 平常我们功能测试用例非常多时,比如有1千条用例,假设每个用例执行需要1分钟,如果单个测试人员执行需要1000分钟才能跑完 当项目非常紧急时,会需要协调多个测试资源来把任务分成两部分,于是执行时间缩短一半,如果有10个小伙伴,那么执行 阅读全文
posted @ 2022-08-25 16:52 观棋不雨 阅读(707) 评论(0) 推荐(0) 编辑
摘要:环境前提: 只有同时满足一下先决条件才能使用pytest-rerunfailures ①python的版本不能过低; ②pytest 5.0或更高版本; 背景: 平时在做接口测试的时候,经常会遇到网络抖动或者环境问题导致测试用例运行失败,而这个并不是我们想要的结果; 我们想要重新运行失败的测试用例, 阅读全文
posted @ 2022-08-25 16:51 观棋不雨 阅读(431) 评论(0) 推荐(0) 编辑
摘要:前言 我们平时在做测试的时候经常会遇到网络抖动,导致测试用例执行失败,重新执行后用例又执行成功了;有时候还会遇到功能不稳定,偶尔会出现bug,我们经常需要反复多次的运行用例,从而来复现问题。pytest-repeat插件就可以实现重复运行测试用例的功能。 pytest-repeat安装 pip in 阅读全文
posted @ 2022-08-25 16:50 观棋不雨 阅读(536) 评论(0) 推荐(0) 编辑
摘要:前言 pytest使用assert来做断言,但是assert断言是一旦遇到断言失败的测试用例后,后面的代码就不会再执行了。 但有的时候我们经常会在用例中写多个断言,并且希望在第一个断言失败后,后面的所有的断言都能继续执行完,这就需要用到 pytest-assume 插件来解决。 背景 使用pytes 阅读全文
posted @ 2022-08-25 16:49 观棋不雨 阅读(1377) 评论(1) 推荐(0) 编辑
摘要:前言 设计测试用例有时候需要自定义测试用例的执行顺序,我们使用pytest的插件 pytest-ordering 来控制测试用例的执行顺序。 【 pytest_ordering 插件,但是只能针对某一个 test 文件的多条用例有效,对多个 test 文件不起作用】 下载 pip install p 阅读全文
posted @ 2022-08-25 16:48 观棋不雨 阅读(168) 评论(0) 推荐(0) 编辑
摘要:安装 pip install pytest-emoji 使用方法 pytest -vs --emoji 示例 执行测试用例的时候,就会在每条用例执行结果的后面添加一个萌萌哒的表情。 重写表情 当然如果不喜欢这类的表情,也可以直接在conftest.py模块中进行重写: # 重写pytest-emoj 阅读全文
posted @ 2022-08-25 16:47 观棋不雨 阅读(89) 评论(0) 推荐(0) 编辑
摘要:前言 ①在我们做接口自动化的时候,很经常会有一个指标是找出一些耗时的接口,从而告知开发这些接口需要优化。 ②由于某些测试用例步骤长,执行时间比较久,为了防止程序长时间处于等待状态,浪费宝贵时间。为此,我们可以设置一个超时时间,当测试在指定的时间长度内没有完成(即使程序并没有“僵死”,只是处理得比较慢 阅读全文
posted @ 2022-08-25 16:23 观棋不雨 阅读(1165) 评论(0) 推荐(0) 编辑
摘要:前言 在我们进行自动化测试的时候,用例往往是成百上千,执行的时间是几十分钟或者是小时级别。有时,我们在调试那么多用例的时候,不知道执行到什么程度了,而pytest-sugar插件能很好解决我们的痛点。 安装 pip3 install pytest-sugar 实例 def test_s1(): pr 阅读全文
posted @ 2022-08-25 16:19 观棋不雨 阅读(154) 评论(0) 推荐(0) 编辑
摘要:前言 当我们使用allure生成测试报告之后,我们再修改测试用例,然后再次运行生成测试报告会发现测试报告中保留了上一次用例的运行记录。【默认allure测试报告不会清理之前的原始数据;而原来的原始数据会在最新的allure测试报告中显示历史用例执行结果】 如果我们不想看到原来的用例执行记录,而是生成 阅读全文
posted @ 2022-08-25 11:44 观棋不雨 阅读(1106) 评论(0) 推荐(0) 编辑
摘要:前言 执行测试用例时,有的时候我们希望能够更加灵活的指定执行某些测试用例,pytest支持我们通过使用marker装饰器@pytest.mark来实现这个需求,而allure也同样提供了三种类似的方法来实现这个需求。 allure的三种方式: BDD(行为驱动开发)的风格标记:Epics、Featu 阅读全文
posted @ 2022-08-25 11:32 观棋不雨 阅读(457) 评论(0) 推荐(0) 编辑
摘要:前言 allure测试报告框架提供了@allure..link、@allure.issue、@allure.testcase 这三个装饰器,可以用来与缺陷管理系统和测试管理系统集成。 三个装饰器源码 def link(url, link_type=LinkType.LINK, name=None): 阅读全文
posted @ 2022-08-25 10:45 观棋不雨 阅读(102) 评论(0) 推荐(0) 编辑
摘要:前言 通过使用装饰器@allure.title可以为测试用例自定义一个更具有阅读性的易读的标题。 allure.title的三种使用方式: 直接使用@allure.title为测试用例自定义标题; @allure.title支持通过占位符的方式传递参数,可以实现测试用例标题参数化,动态生成测试用例标 阅读全文
posted @ 2022-08-25 10:32 观棋不雨 阅读(150) 评论(0) 推荐(0) 编辑
摘要:前言 allure支持往测试报告中对测试用例添加非常详细的描述语用来描述测试用例详情;这对阅读测试报告的人来说非常的友好,可以清晰的知道每个测试用例的详情。 allure添加描述的三种方式: 使用装饰器@allure.description,传递一个字符串参数来描述测试用例。 使用装饰器@allur 阅读全文
posted @ 2022-08-25 10:27 观棋不雨 阅读(197) 评论(0) 推荐(0) 编辑
摘要:前言 allure测试报告同样支持显示不同类型的附件,对测试用例、测试步骤以及fixture函数的结果加以补充。 allure.attach() 或者 allure.attach.file 的作用是为allure测试报告的测试用例执行结果添加附件。 allure.attach的用法一:(最常用) 语 阅读全文
posted @ 2022-08-25 10:18 观棋不雨 阅读(242) 评论(0) 推荐(0) 编辑
摘要:前言 在编写自动化测试用例的时候经常会遇到需要编写流程性测试用例的场景,一般流程性的测试用例的测试步骤比较多,我们在测试用例中添加详细的步骤会提高测试用例的可阅读性。 allure提供的装饰器@allure.step()是allure测试报告框架非常有用的功能,它能帮助我们在测试用例中对测试步骤进行 阅读全文
posted @ 2022-08-25 10:05 观棋不雨 阅读(262) 评论(0) 推荐(0) 编辑
摘要:前言 我们可以通过pytest-html插件来生成测试报告,但是pytest-html插件生成的测试报告不够美观,逼格也不够高,通过allure生成的测试报告是比较美观的,花里胡哨的,能够提升一个level。 allure官网: https://docs.qameta.io/allure/ allu 阅读全文
posted @ 2022-08-24 18:39 观棋不雨 阅读(246) 评论(0) 推荐(0) 编辑
摘要:前言 Allure介绍 Allure是一款测试报告框架,不仅报告美观,而且方便CI集成。 allure是一款开源的,专门用来展示测试结果的一个工具,allure可以与很多的测试框架做集成,比如:java的Junit、TestNG;python的pytest等。 allure会将测试用例的执行数据保存 阅读全文
posted @ 2022-08-24 18:35 观棋不雨 阅读(346) 评论(0) 推荐(0) 编辑
摘要:官方介绍 1、Allure Framework是一种灵活的轻量级多语言测试报告工具,不仅可以以简洁的Web报告形式非常简洁地显示已测试的内容,也允许参与开发过程的每个人从日常测试中提取最大程度的有用信息。 2、从开发/质量保证的角度来看,Allure报告可以缩短常见缺陷的生命周期:可以将测试失败划分 阅读全文
posted @ 2022-08-22 15:27 观棋不雨 阅读(1003) 评论(0) 推荐(1) 编辑
摘要:一、查看allure 命令的帮助文档 allure -h allure 命令的语法格式 allure [options] [command] [command options] options 列表 Options: --help 命令行帮助文档 -q, --quiet 切换至安静模式 Defaul 阅读全文
posted @ 2022-08-19 11:06 观棋不雨 阅读(642) 评论(0) 推荐(0) 编辑
摘要:前言 pytest测试框架提供的很多钩子函数方便我们对测试框架进行二次开发,可以根据自己的需求进行改造。 例如:钩子方法:pytest_runtest_makereport ,可以更清晰的了解测试用例的执行过程,并获取到每个测试用例的执行结果。 pytest_runtest_makereport方法 阅读全文
posted @ 2022-08-19 10:29 观棋不雨 阅读(692) 评论(0) 推荐(1) 编辑
摘要:钩子函数之 pytest_addoption介绍: ① pytest_addoption 钩子函数可以让用户注册一个自定义的命令行参数,以便于用户在测试开始前将数据从外部(如:控制台)传递给程序;【程序根据获取的用户传递的自定义的参数值来做一些事情】 ② pytest_addoption 钩子函数一 阅读全文
posted @ 2022-08-18 17:58 观棋不雨 阅读(775) 评论(0) 推荐(1) 编辑
摘要:当我们对测试用例进行参数化时,使用@pytest.mark.parametrize的ids参数自定义测试用例的标题,当标题中有中文时,控制台和测试报告中会出现Unicode编码问题,这看起来特别像乱码,我们想让中文正常展示出来,需要用到pytest框架的钩子函数pytest_collection_m 阅读全文
posted @ 2022-08-18 17:57 观棋不雨 阅读(275) 评论(0) 推荐(0) 编辑
摘要:前言 pytest默认执行用例是根据项目下的文件名称按ascii码去收集运行的;文件中的用例是从上往下按顺序执行的。 pytest_collection_modifyitems 这个函数顾名思义就是收集测试用例、改变用例的执行顺序的。 【严格意义上来说,我们在用例设计原则上用例就不要有依赖顺序,这样 阅读全文
posted @ 2022-08-18 17:55 观棋不雨 阅读(383) 评论(0) 推荐(0) 编辑
摘要:前言 pytestconfig 是pytest框架的一个内置fixture函数,可以获取上下文,它的作用跟 request.config 是一样的,代表pytest配置对象。 参照博客:pytest系列——内置fixture函数之request详解 pytestconfig的源代码 从源代码中可以看 阅读全文
posted @ 2022-08-12 11:34 观棋不雨 阅读(354) 评论(0) 推荐(0) 编辑
摘要:前言 官方文档中 request 的描述:request是pytest的内置fixture函数;为请求对象提供对请求测试上下文的访问权,并且在fixture函数被间接参数化的情况下具有可选的"param"属性。 对这句话的解读: request 函数是pytest中的内置fixture函数,可以在自 阅读全文
posted @ 2022-08-12 11:20 观棋不雨 阅读(480) 评论(0) 推荐(0) 编辑
摘要:conftest.py是什么? conftest.py是fixture函数的一个集合,可以理解为公共的提取出来放在一个文件里,然后供其它模块调用。不同于普通被调用的模块,conftest.py使用时不需要导入,Pytest会自动查找。 conftest.py使用场景 如果我们有很多个前置函数,写在各 阅读全文
posted @ 2022-08-12 10:14 观棋不雨 阅读(272) 评论(0) 推荐(0) 编辑
摘要:前言 setup和teardown能实现在测试用例执行之前或之后做一些操作,但是这种是整个测试脚本全局生效的; 如果我们想实现某些用例执行之前进行登录,某些用例执行之前不需要进行登录,这种场景我们再使用setup和teardown就无法实现了,这时候我们就需要用到fixture功能了。 fixtur 阅读全文
posted @ 2022-08-12 10:11 观棋不雨 阅读(211) 评论(0) 推荐(0) 编辑
摘要:一、pytest实现测试用例参数化(@pytest.mark.parametrize) @pytest.mark. parametrize装饰器可以实现对测试用例的参数化,方便测试数据的获取。 @pytest.mark. parametrize的基本使用: 方便测试函数对测试数据的获取。 方法: p 阅读全文
posted @ 2022-08-09 13:26 观棋不雨 阅读(1216) 评论(0) 推荐(0) 编辑
摘要:前言 ①我们平时在写测试用例的过程中,有时会遇到【已知由于某些原因,某些场景是有问题的,或者是功能暂时没有实现】这种情况,那么测试用例执行的时候我们就知道这个测试用例会失败,也就是预期失败,这个时候我们就可以使用 @pytest.mark.xfail 装饰器来标记测试用例为预期失败函数。 ②当某个b 阅读全文
posted @ 2022-08-05 15:41 观棋不雨 阅读(207) 评论(0) 推荐(0) 编辑
摘要:fixture之yield关键字实现teardown用例后置操作 前言 ①pytest之fixture函数使用(pytest测试框架测试固件 文中讲到,fixture函数是通过scope参数来控制setup级别; ②既然有setup函数作为用例之前的操作,测试用例执行完成之后那肯定也有teardow 阅读全文
posted @ 2022-08-05 10:46 观棋不雨 阅读(167) 评论(0) 推荐(0) 编辑
摘要:前言 pytest.ini文件是pytest的主配置文件;可以改变pytest的运行方式;它是一个固定的文件pytest.ini文件,读取配置信息,按指定的方式去运行。 pytest.ini文件的位置一般放在项目的根目录下,不能随便放,也不能更改名字。 查看pytest.ini文件的配置选项 cmd 阅读全文
posted @ 2022-08-04 17:53 观棋不雨 阅读(1297) 评论(0) 推荐(0) 编辑
摘要:1、Pycharm调试程序时,有时需要直接从第一个断点跳转至第二个断点,如果继续用单步调试的话就非常麻烦;(需要一步一步的去执行代码中的每一行) 当然解决方法也很简单,点击 Dubug ,当程序停在第一个断点的时候,点击菜单栏的 Run-> Resume Program 即可跳转至第二个断点。 或者 阅读全文
posted @ 2022-08-04 13:43 观棋不雨 阅读(253) 评论(0) 推荐(0) 编辑
摘要:前言 今天在使用Pycharm工具练习Python时遇到一个疑问:在已存有项目A工程的前提下如何新建另一个项目B,且两者并存? 解释 在File下拉项中选择“New Project”弹出新界面点击“Pure Python”后创建即可,这是会弹出如图所示的提示框: 选择“Open in new win 阅读全文
posted @ 2022-08-04 13:21 观棋不雨 阅读(513) 评论(0) 推荐(0) 编辑
摘要:前言 单元测试框架基本上都具有setup和teardown的功能; setup用来实现用例执行前的一些操作(如:数据准备、打开浏览器等操作); teardown用来实现用例执行完成之后的一些操作(如:数据清理、关闭浏览器等操作)。 pytest作为一款强大的测试框架同样也有setup和teardow 阅读全文
posted @ 2022-08-04 13:08 观棋不雨 阅读(374) 评论(0) 推荐(0) 编辑
摘要:Exit code 0 :所有用例执行完毕,全部通过 Exit code 1:所有用例执行完毕,存在Failed的测试用例 Exit code 2:用户中断了测试的执行 Exit code 3:测试执行过程发生了内部错误 Exit code 4:pytest 命令行使用错误 Exit code 5: 阅读全文
posted @ 2022-08-04 10:35 观棋不雨 阅读(334) 评论(0) 推荐(1) 编辑
摘要:前言 在我们自动化测试过程中,经常会遇到功能阻塞、功能未实现、环境等一系列外部因素问题导致的一些用例执行不了,这时我们就可以用到跳过skip用例,如果我们注释掉或删除掉,后面还要进行恢复操作。 ① pytest.mark.skip 装饰器可以标记无法在某些平台上运行的测试功能,或者希望失败的测试功能 阅读全文
posted @ 2022-08-04 10:29 观棋不雨 阅读(372) 评论(0) 推荐(0) 编辑
摘要:test session start:一段会话就是pytest的一次调用,他可能包括多个目录下被执行的测试用例 cachedir:pytest测试运行时的缓存文件夹【存放所有运行后的测试用例路径以及上一次运行失败的测试用例路径】 metadata:pytest测试运行时的所有设备或包信息元数据 ro 阅读全文
posted @ 2022-08-03 16:25 观棋不雨 阅读(168) 评论(0) 推荐(0) 编辑
摘要:一、--collect-only选项 使用--collect-only选项可以展示在给定的配置下哪些测试用例会被运行 --collect-only选项可以让你非常方便的在测试运行之前,检查选中的测试用例是否符合预期 pytest --collect-only 或者 pytest --co 二、-k选 阅读全文
posted @ 2022-08-03 16:17 观棋不雨 阅读(2457) 评论(0) 推荐(0) 编辑
摘要:pycharm退出pytest模式(run pytest in模式) 一、pycharm中test模式与run模式的区别 run模式: test模式: 很明显的问题,运行模式不同的情况下,对于测试执行结果的显示有很大的不同。 当我们使用pytest框架编写自动化测试脚本并且对其调试的过程中,我们一般 阅读全文
posted @ 2022-08-03 15:46 观棋不雨 阅读(503) 评论(0) 推荐(0) 编辑
摘要:pytest的整个测试分成如下六个阶段: pytest_configure pytest插件和conftest.py文件配置初始化等,创建测试session会话。 pytest_sessionstart 创建session完以后,执行collection收集测试用例之前的阶段。会调用pytest_r 阅读全文
posted @ 2022-08-03 10:36 观棋不雨 阅读(648) 评论(0) 推荐(0) 编辑