1 实现目的 在LInux操作系统上,针对桌面端软件,模拟用户(鼠标、键盘)操作,达到快速、重复执行测试用例; 便于回归测试,快速覆盖主线用例或功能; 线上或线下巡检测试,结合持续集成,及时发现运行环境存在的问题; 提升个人自动化测试技术能力,为业务提供强有力的测试手段。 2 功能需求 基于Unittest,封装、调用和组织所有的测试用例,进行批量或指定用例运行; 支持邮件服务,可添加任意团
(25-看到allure动态生成标题和描述的特性时,直言简直太灵活了(allure.dynamic使用)) 1 之前关于标题和描述是怎么做的? 1.1 之前标题使用@allure.title装饰器 举个例子看下,之前已经学习过了,不再赘述了: # -*- coding:utf-8 -*- # 作者:虫无涯 # 日期:2023/3/28 # 文件名称:test_allure_title.py
(24-如何清空allure报告历史记录?我每次都手动删除,有点Low了~) 1 为什么要进行allure历史记录清空? 没运行一次生成报告的命令,在allure报告的目录下就生成一次报告记录; 如果进行很多次调试,那就有很多个报告历史记录; 这样每次查看报告时就会显示历史的用例运行情况,比较乱且可能不是我们想要的结果; 所以就需要对allure报告历史记录进行清空操作。 2 看个简单的例子
(23-allure常用特性集合及使用方法说明) 1 @allure.step() @allure.step()装饰器,可以让测试用例在allure报告中显示详细的测试过程; step() 只有一个参数title,传什么就在allure上就显示什么; 举例: # -*- coding:utf-8 -*- # 作者:虫无涯 # 日期:2023/3/28 # 文件名称:test_allure_s
(22-allure特性 丨总览中的Environment和Categories设置) 如下图,我们可以看到allure报告的总览,里边的一些特性是可以自定义设置的。 1 Environment设置 Environment可以理解为环境变量; 默认为空; 可以自己设置。 1.1 设置方法 在存放测试报目录下创建environment.properties或者environment.xm
(21-测试报告插件allure-pytest如何使用?) 1 Allure简介 详细内容可以参考官方文档:://docs.qameta.io/allure-report/; Allure是一个多语言测试报告工具; 可以使用Web形式显示报告内容; 开发/质量保证角度,可以将测试失败划分为bug和损坏的测试,还可以配置log,step,fixture,attachments,timi
(20-pytes如何进行分布式测试?(pytest-xdist)) 1 什么是分布式测试? 在进行本文之前,先了解些基础知识,什么是分布式测试? 分布式测试:是指通过局域网和Internet,把分布于不同地点、独立完成特定功能的测试计算机连接起来,以达到测试资源共享、分散操作、集中管理、协同工作、负载均衡、测试过程监控等目的的计算机网络测试。 通俗的讲:分布式测试 就是活太多,一个人干费时间,
(19-pytes断言失败后,怎样保持后续的断言继续执行?(pytest-assume)) 1 引入 pytest使用assert进行断言,如果有多个断言,第一个失败了,那么后续的断言将不会执行; 那么如果第一个断言失败了,还想继续保持执行后边的断言,那如何做? 我们可以使用pytest-assume来解决这个问题,即使用多重断言插件。 2 pytest-assume安装 pip3 insta
(18-pytest.ini配置文件如何使用?) 1 配置文件的作用 改变pytest的运行方式; pytest.ini是一个固定的文件; pytest.ini用来读取配置信息。 2 文件格式 # 文件名为:pytest.ini [pytest] addopts = xfail_strict = 3 查看pytest.ini的选项 使用命令: pytest --help 如下
(17-Pytest如何重复执行用例?(pytest-repeat)) 1 使用场景 为了排查某些问题,我们可能需要重复去执行某个用例进行问题分析; 一些场景下,自动化测试时候某个用例时好时坏,为了排查这类问题,我们可能需要对用例进行重复执行。 2 pytest-repeat插件 为了重复执行用例,我们可以使用pytest-repeat插件; 详细参考官方教程:://pypi.or
@TOC注:1、本文为本站首发,他用请联系作者并注明出处,谢谢!2、源码解析/mian入口说明、testcase说明、page说明1main.py主入口jscoding:utf8作者:虫无涯日期:2023/2/17文件名称:main.py作用:框架的主入口函数coding=utf8importtimefromcommon.reportOutimportreport_outfromcommon.lo
1框架工具说明工具说明:使用Unittest框架开源自动化测试框架,直接使用批量或指定用例运行Unittest框架可支持此功能log日志使用Python的logging库即可生成HTML测试报告使用BeautifulReport模块可实现此功能用例设计和结果分离PO模式用户登录封装直接把登录功能模块化,使用Unittest框架中的setup,teardown即可定制测试报告模板使用Beautifu
@TOC(16HTML报告如何生成?(pytesthtml))1插件介绍pytestHTML是一个插件,pytest用于生成测试结果的HTML报告;这个插件需要进行安装。2pytesthtml安装直接使用pip安装即可:pythonpipinstallpytesthtml安装信息如下:pythonC:\Users\AdministratorpipinstallpytesthtmlLookingin
@TOC(15Pytest用例失败如何重跑?(pytestrerunfailures的简单使用))1简介用例失败重跑可以使用插件pytestrerunfailures来实现;pytestrerunfailures有环境要求:Python3.53.8,orPyPy3pytest5.0或更高版本查看下自己的版本,如下:pythonPython3.7.0(v3.7.0:1bf9cc5093,Jun272
@TOC(14Pytest用例执行结果有哪几种状态?)1用例执行状态状态说明passed测试通过failed断言失败error用例本身代码报错xfail预期失败,加了@pytest.mark.xfail()2xfail示例pythoncoding:utf8作者:NoamaNelson日期:2022/12/27文件名称:test_case_status.py作用:用例的执行状态联系:(Noama
@TOC(13Pytest的fixture如何使用request传入参数?)1使用场景当我们为了提高用例的复用性,会用到不同的fixture,比如登陆场景;但是如果登陆场景,我们使用不同的账号进行测试,那如何来做?此时不能使用fixture把账号直接写死,需要通过传参的方式来实现。2传单个参数pythoncoding:utf8作者:NoamaNelson日期:2022/12/27文件名称:test
@TOC(12Unittest和Pytest参数化详解)1Unittest参数化1.1ddt1.1.1简介数据驱动ddt可以实现测试数据与测试脚本的分离;通过ddt来将测试数据加载到脚本中;1.1.2说明测试数据为嵌套字典的列表;测试类前加修饰@ddt;测试用例前加修饰@data()运行后用例会自动加载成多个单独的用例。1.1.3安装pythonpipinstallddt1.1.4版本信息pyth
@TOC(11Pytest如何使用自定义标记mark?)1mark简介pytest可自定义标记;把一个大项目自动化用例,划分多个模块,标明哪些是模块A用例,哪些是模块B的,运行代码时候指定mark名称运行就可以。2使用方法python@pytest.mark.自定义名称3实例pythoncoding:utf8作者:NoamaNelson日期:2022/11/18文件名称:test_mark.py作
@TOC(10Pytest中的测试用例如何跳过执行?)1引入有时候我们需要对某些指定的用例进行跳过,或者用例执行中进行跳过,在Unittest中我们使用skip()方法;在Pytest中如何使用呢?在Pytest中也提供了两种方式进行用例的跳过skip、skipif。2Unittest中的用例跳过pythoncoding:utf8作者:NoamaNelson日期:2022/11/17文件名称:te
@TOC(9fixture中conftest.py如何使用?)1引入之前学习使用fixture前置实现用例的登陆,当时在一个脚本中实现的;那如果其他的脚本也需要用到登陆,这样调用起来可能比较麻烦;所以我们可以把登陆的fixture放到conftest.py,让pytest去查找。2conftest.py简介conftest.py是一个配置文件;可单独管理一些预置的操作场景;pytest里面默认读取
@TOC(8fixture如何实现teardown功能?(yield的使用))1引入之前学习fixture的时候,其实这个功能就类似用例的前置,给用例执行前设置一些条件;那fixture也就相当于setup的功能;那有没有teardown的功能呢?有,fixture里面的teardown用yield来唤醒teardown的执行。2yield说明yield是一个关键字;yield在fixture中起
@TOC(7fixture参数scope作用域(范围)执行顺序)之前学习了fixture的基本使用,其中参数scope类似作用域,就是fixture的使用范围,那么针对scope的这几个值,他的执行顺序是怎样的?1scope的五个范围值作用范围session整个测试会话,跨文件调用package跨文件调用,可以跨.py文件module一个.py执行一次,一个.py文件可能包含多个类和方法class
@TOC(6fixture如何使用?)1引入和setup、teardown的区别是:fixture可自定义测试用例的前置条件;setup、teardown针对整个脚本全局生效,可实现在执行用例前后加入一些操作;setup、teardown不能做到灵活使用,比如用例A先登陆,用例B不需要登陆,用例C需要登陆,这样使用fixture更容易实现功能。2fixture参数说明2.1fixture源码部分源
@TOC(·13webdriver/support分析)1源码路径pythonselenium/webdriver/support!在这里插入图片描述(https://s2.51cto.com/images/blog/202301/31093906_63d8713a68b1f44773.png?xossprocess=image/watermark,size_14,text_QDUxQ1RP5Y2
@TOC(·12webdriver/remote分析)1源码路径pythonselenium/webdriver/remote!在这里插入图片描述(https://s2.51cto.com/images/blog/202301/31093640_63d870a8eb9e873448.png?xossprocess=image/watermark,size_14,text_QDUxQ1RP5Y2a5
@TOC(·11webdriver/common/touch_actions.pyTouchActions类分析)1源码路径pythonselenium/webdriver/common/touch_actions.py!在这里插入图片描述(://s2.51cto.com/images/blog/202301/31093417_63d87018f325524.png?xosspro
@TOC(·10webdriver/common/proxy.pyProxy类分析)1源码路径pythonselenium/webdriver/common/proxy.py!在这里插入图片描述(https://s2.51cto.com/images/blog/202301/31093106_63d86f5add35182779.png?xossprocess=image/watermark,si
@TOC(·9webdriver/common/desired_capabilities.pyDesiredCapabilities类分析)1源码目录pythonselenium/webdriver/common/desired_capabilities.py2功能描述根据测试代码中配置的DesiredCapabilities参数,来决定将测试代码分发到哪台node上进行测试;补充知识:我们需要了
Copyright © 2005-2023 51CTO.COM 版权所有 京ICP证060544号