环境 python 3.7 由于3.0-3.5以下部分pytest可能有部分兼容问题安装建议2.7-2.9,3.5-最新 pip install pytest专属 pytest框架包 pip install  allure-pytest 专属allure的报告包后面会用到可以不安装这里 pip install pytest-html  pytest自己专属报告包 pip install pytest-rerunfailures 失败重跑包也是pytest专属 并发的也可以安下,利用多cpu运行调…
前言 大家都知道Python有自带的单元测试框架unittest,那为什么还要学习Pytest呢?先了解下Pytest优点 pytest: pytest是一个非常成熟的全功能的Python测试框架,是unittest框架的扩展,主要特点有以下几点: 1.简单灵活,非常方便的组织自动化测试用例: 2.支持参数化,可以细粒度地控制要测试的测试用例: 3.能够支持简单的单元测试和复杂的功能测试,比如web端selenium/移动端appnium等自动化测试.request接口自动化测试 4.pytes…
课程介绍 课程主题:<Selenium+Pytest Web自动化实战> 适合人群: 1.功能测试转型自动化测试 2.web自动化零基础的小白 3.对python 和 selenium 有兴趣的同学 4.已经有一些基础,定位不熟练,没完整写过一整个项目的同学 5.想学pytest框架的同学 6.课程还没更新完,但每天都会更新 报名方式 本次报名统一在网易云课程平台报名学习,正规平台,放心学习!点图片立即报名参与课程 注意事项: 1.不要用 iOS 手机端下单(手续费太贵,扣33%),尽量在电脑…
pytest接口自动化完整框架思维导图…
1.首先安装pytest pip install pytest 2.编写单测用例 在pytest框架中,有如下约束: 所有的单测文件名都需要满足test_*.py格式或*_test.py格式. 在单测文件中,可以包含test_开头的函数,也可以包含Test开头的类. 在单测类中,可以包含一个或多个test_开头的函数. 此时,在执行pytest命令时,会自动从当前目录及子目录中寻找符合上述约束的测试函数来执行. import pytest # content of test_sample.py…
pytest框架规则 测试文件以test_开头或者以_test结尾 测试类以Test开头,并且不能带有init方法 测试函数以test_开头 断言使用assert pytest框架运行用例 运行单个文件 运行多个文件 运行整个目录 import pytest if __name__=="__main__": # 运行单个文件,添加对应文件的路径,使用相对路径 pytest.main(['../test_requests/test_assert.py']) # ../ run_case目…
Pytest框架 一.简介 pytest:基于unittest之上的单元测试框架 有什么特点? 自动发现测试模块和测试方法 断言更加方便,assert + 表达式,例如 assert 1 == 1 灵活运行指定的测试用例,标签化,适合回归.正向.冒烟.登录 (夹具)环境管理灵活.会话.模块,哪个用,哪个不用 丰富的插件,例如测试报告插件 和unittest兼容 安装 pip install pytest # 更新 pip install -U pytest # 只安装到当前用户 pip inst…
pytest框架的安装与使用 一,pytest了解 pytest是python的一种单元测试框架,与python自带的unittest测试框架类似,但是比unittest框架使用起来更简洁,效率更高. 优点: 1.第一个优点肯定是简单,灵活,易上手 2.支持参数化,pytest直接使用@pytest.mark.parametrize装饰器 3.能够支持简单的单元测试和复杂的功能测试,还可以用来做selenium/appnium等自动化测试.接口自动化测试(pytest+requests) 4.p…
目录 1.什么是单元测试框架 2.单元测试框架主要做什么 3.单元测试框架和自动化测试框架有什么关系 4.Pytest测试框架说明 5.Pytest框架和Unittest框架区别 (1)Unittest (2)Pytest (3)区别 1.什么是单元测试框架 单元测试是指在软件开发当中,针对软件的最小单位(函数,方法)进行正确性的检查测试. 2.单元测试框架主要做什么 测试发现:从多个文件里面去找到我们需要的测试用例. 测试执行:按照一定的顺序和规则去执行测试用例,并生成结果. 测试判断:通过断…
目录 1.Pytest安装 2.Pytest常用插件 3.Pytest运行的第一个例子 4.Pytest框架的运行方式 5.在PyCharm中以Pytest的方式运行测试用例 1.Pytest安装 CMD命令窗口执行Pytest测试框架安装命令:pip install -U pytest (意思是如果没有安装,就进行安装,如果已安装就升级到最新版) 在CMD中检查Pytest测试框架是否安装成功:pytest –-version C:\Users\L>pytest --version pytes…
目录 1.setUp()和tearDown()函数介绍 2.setUp()和tearDown()函数作用 3.setUp()和tearDown()函数说明 4.示例 (1)方法级 (2)类级 (3)函数级 (4)模块级 1.setUp()和tearDown()函数介绍 之前学过Unittest测试框架,知道前置setup()函数和后置teardown()函数非常好用,在每次用例开始前和结束后都去执行一次. 当然还有更高级一点的setupClass()函数和teardownClass()函数,需配…
目录 1.conftest.py文件介绍 2.conftest.py的注意事项 3.conftest.py的使用 4.不同位置conftest.py文件的优先级 5.conftest.py中Fixture(夹具)的作用域 6.总结 1.conftest.py文件介绍 conftest.py文件是Pytest框架里面一个很重要的东西,它可以在这个文件里面编写Fixture函数,这个Fixture函数的作用,就相当于Unittest框架里面的setup()前置函数和teardown()后置函数,虽然…
本人之前写了一套基于unnitest框架的UI自动化框架,但是发现了pytest框架之后觉得unnitest太low,现在重头开始学pytest框架,一边学习一边记录,和大家分享,话不多说,那就先从pytest框架的精髓fixture说起吧! 简介: fixture区别于unnitest的传统单元测试(setup/teardown)有显著改进: 1.有独立的命名,并通过声明它们从测试函数.模块.类或整个项目中的使用来激活. 2.按模块化的方式实现,每个fixture都可以互相调用. 3.fixt…
Pytest框架介绍.安装 pytest是python测试框架,与python自带的unittest测试框架类似,但是比unittest框架使用起来更简洁,功能更强大 pytest特征 1:断言提示信息更清楚 2:自动化加载函数与模块 3:支持运行由nose, unittest编写的测试case 4:支持py2.3,2.7,3.x 5:丰富的插件以及社区支持 6:支持参数化 7:支持失败重跑 8:支持多线程跑用例 9:支持分布式 pytest安装 pip安装,在cmd下面执行命令 pip ins…
一.Pytest简介pytest是一个非常成熟的全功能的Python测试框架,主要有一下几个特点:1.简单灵活,容易上手,支持参数化2.能够支持简单的单元测试和复杂的功能测试,还可以用来做selenium.appium等自动化测试,requests+pytest接口自动化测试3.pytest具有很多第三方插件,并且可以自定义扩展,比较好用的如: pytest-selenium(集成selenium) pytest-html(完美html测试报告生成) pytest-rerunfailures(失…
目录 1.Pytest参数介绍 2.Pytest框架用例命名规则 3.Pytest Exit Code说明 4.pytest.ini全局配置文件 5.Pytest执行测试用例的顺序 1.Pytest参数介绍 -v:打印用例执行的详细过程. -q:只显示整体测试结果.(显示简略过程) -s:用于显示输出调试信息,包括测试函数中print()函数输出的信息. -x,--exitfirst:在第一个错误或测试失败时立即退出. 示例:在第N个用例失败以后,结束测试执行. 第1次失败,就停止测试:pyte…
目录 1.Fixture装饰器的用途 2.Fixture参数说明 3.Fixture装饰器简单应用 4.yield执行后置函数 1.Fixture装饰器的用途 做测试前后的初始化设置,如测试数据准备,链接数据库,打开浏览器等这些操作都可以使用Fixture来实现. 测试用例的前置条件可以使用Fixture实现,比直接使用Pytest框架的setup()和teardown()函数更加灵活. Fixture是Pytest用于将测试前后进行预备,清理工作的代码分离出核心测试逻辑的一种机制! Fixtu…
前言 在python+pytest 接口自动化系列中,我们之前的文章基本都没有将代码进行封装,但实际编写自动化测试脚本中,我们都需要将测试代码进行封装,才能被测试框架识别执行. 例如单个接口的请求代码如下: import requests headers = { "user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.…
经过之前的学习铺垫,我们尝试着利用pytest框架编写一条接口自动化测试用例,来厘清接口自动化用例编写的思路. 我们在百度搜索天气查询,会出现如下图所示结果: 接下来,我们以该天气查询接口为例,编写接口测试用例脚本. 一,明确测试对象 针对某个功能做接口测试,首先我们需要确定实现这个功能调用的是哪个接口,这个接口的具体信息(如功能.协议.URL.请求方法.请求参数说明.响应参数说明等等)可以通过查看开发提供的接口文档获取,也可以通过抓包(在没有接口文档的情况下)获取.找到对应的接口也就是测试对象…
在PC端登录公司的后台管理系统或在手机上登录某个APP时,经常会发现登录成功后,返回参数中会包含token,它的值为一段较长的字符串,而后续去请求的请求头中都需要带上这个token作为参数,否则就提示需要先登录. 这其实就是状态或会话保持的第三种方式token. 一. 什么是token token 由服务端产生,是客户端用于请求的身份令牌.第一次登录成功时,服务端会生成一个包含用户信息的加密字符串token,返回给客户端并保存在本地,后续客户端只需要带上token进行请求即可,无需带上用户名密码…
Selenium Web 自动化 - Selenium(Java)环境搭建 2016-07-29 1 下载JDK JDK下载地址:http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html 2 安装和配置JDK 安装目录尽量不要有空格  D:\Java\jdk1.8.0_91; D:\Java\jre8 设置环境变量: “我的电脑”->右键->“属性”->”高级系统设置”->…
Selenium Web 自动化 - Selenium常用API 2016-08-01 目录 1 对浏览器操作  1.1 用webdriver打开一个浏览器  1.2 最大化浏览器&关闭浏览器  1.3 设置浏览器窗口大小  1.4 打开测试页面  1.5 处理浏览器弹出的新窗口2 页面元素定位3 如何对页面元素进行操作  3.1 WebElement相关方法  3.2 iFrame的处理  3.3 输入框(text field or textarea)  3.4 下拉选择框(Select) …
前言: 之前通过重写unittest的初始化方法加入设备参数进行并发,实现了基于unittest的appium多设备并发,但是考虑到unittest的框架实在过于简陋,也不方便后期的Jenkins的持续集成,所以想换一个框架来使用. 那么通过调研,pyhon+pytest+allure 这套框架很不错,pytest是一个单元测试框架,他可以集成很多插件,包括出错重试,参数化,等.在此特别是基于他的allure插件,能够和Jenkins完美兼容,生成美观强大的测试报告. 改造思路: pytest框…
背景知识,某次使用HTMLTestRunner的时候,发现一直都无法导出报告,后来查询资料发现了一些坑,现在整理一下来龙去脉. 一:pycharm默认的是pytest框架去执行unittest框架的测试用例 import unittest class AlienTest(unittest.TestCase): @classmethod def setUpClass(cls): print("TestCase start running ") def test_1_run(self):…
web自动化测试中,稳定性在整个测试运行中都至关重要,但不能保证测试脚本或者测试环境一直都能够稳定,它牵扯到诸多因素,在这里就不赘述,pytest框架相较于unittest的一大优势就在于拥有用例失败的重试机制,以此来应对环境不稳定问题或者是测试用例脚本的不稳定性问题. 一.安装 重运行机制使用到了pytest的插件,插件名称为:rerunfailures,要使用它,需要先安装此插件 pip install pytest-rerunfailures 二.使用方法 1.命令行参数形式 命令:pyt…
问题描述: 使用pytest框架做接口自动化测试时,在测试用例所在的.py文件下使用pycharm的run功能可以正常跑用例,使用cmd运行窗口或Terminal则报下图中的错误: Hint: make sure your test modules/packages have valid Python names. 解决办法: 在要执行pytest 的项目根目录新建一个conftest.py文件,并添加以下几行代码,问题得到完美解决! import os import sys sys.path.…
上一篇零零散散的写了一些python unnitest的一些知识,这里讲讲我在实际中使用到的自动化测试框架,算是上篇记录的补充!其实我觉得:什么框架都无所谓,关键是当如果用你的框架发现了bug,能尽量协助开发解决bug!那么你最好可以提供: 1.最基本的错误截图要能提供吧. 2.要是能提供出错页加载的接口信息该多好!(这个是我正在思考的问题) 3.如果可以的话,在自动化录制过程中,能全程录制,这样也利于跟踪bug(这个应该比较容易实现,毕业屏幕录制软件不少,可能需要一个脚本动态启动他们,结束关闭…
本文来介绍如何生成自动化测试报告,前面文章尾部提到了利用HTMLTestRunner.py来生成自动化测试报告.关于HTMLTestRunner不过多介绍,只需要知道是一个能生成一个HTML格式的网页报告就可以,其他的可以自己去搜索查询资料.我们需要在我们自动化框架里面继承一个报告输出,直接来看看效果. 这里我们报告输出代码写到了,负责执行测试套件TestRunner.py这个文件.相关代码如下: # coding=utf-8 import HTMLTestRunner import os im…
pytest常用的方法和原理 1.pytest的原理 pytest插件基于pluggy模块:pluggy有三个重要概念:HookspecMarker(用来定义hook函数),HookimplMarker(用来实现钩子函数完成插件的逻辑)和PluginManager(用来负责注册和调用插件的管理器): 2.pytest的规定 所有规范和实现均遵循pytest_前缀命名约定,从而易于区分和查找 3.加载插件的方式 内置插件:从代码内部的_pytest目录加载 外部插件(第三方插件):通过setupt…
1.pytest--参数化 在测试用例的前面加上@pytest.mark.parametrize("参数名",列表数据) 参数名:用来接收每一项数据,并作为测试用例的参数 列表数据:一组测试数据 2.使用参数列表数据,iten表示的参数名,列表数据LD.error_data,item相当于LD.error_data中的每一条数据,在函数中传入item参数,按代码中的取值方式,获得列表数据中对应的数据 from PageObjects.index_page import IndexPag…