pytest

pytest+requests+Python3.7+yaml+Allure+Jenkins+docker实现接口自动化测试

眉间皱痕 提交于 2020-08-10 08:31:53
接口自动化测试框架(用例自动生成) 项目说明 本框架是一套基于 pytest+requests+Python3.7+yaml+Allure+Jenkins+docker 而设计的数据驱动接口自动化测试框架, pytest 作为执行器,本框架无需你使用代码编写用例,那你可能会担心万一有接口之间相互依赖,或者说需要登入的token等之类的接口,该如何编写用例呢,在这里告诉你们本框架已经完美解决此问题,所有的一切将在yaml中进行!!本框架实现了在yaml中进行 接口用例编写,接口依赖关联,接口断言,自定义测试用例运行顺序 ,还有很重要的一点,实现了类 jmeter函数助手 的功能,譬如生成MD5、SHA1、随机定长字符串、时间戳等,只需要你在yaml中使用特殊的写法 $Function(arg)$ ,就能够使用这些函数啦,此外在测试执行过程中,还可以 对失败用例进行多次重试 ,其重试次数和重试时间间隔可自定义;而且可以根据实际需要扩展接口协议,目前已支持 http接口和webservice接口 。 技术栈 requests suds-py3 Allure pytest pytest-html yaml logging Jenkins docker 函数助手 环境部署 命令行窗口执行pip install -r requirements.txt 安装工程所依赖的库文件 解压allure

pytest文档33-Hooks函数获取用例执行结果(pytest_runtest_makereport)

流过昼夜 提交于 2020-08-10 05:49:14
前言 pytest提供的很多钩子(Hooks)方法方便我们对测试用例框架进行二次开发,可以根据自己的需求进行改造。 先学习下pytest_runtest_makereport这个钩子方法,可以更清晰的了解用例的执行过程,并获取到每个用例的执行结果。 pytest_runtest_makereport 先看下相关的源码,在 _pytest/runner.py 下,可以导入之后,点进去查看 from _pytest import runner # 对应源码 def pytest_runtest_makereport(item, call): """ return a :py:class:`_pytest.runner.TestReport` object for the given :py:class:`pytest.Item` and :py:class:`_pytest.runner.CallInfo`. """ 这里item是测试用例,call是测试步骤,具体执行过程如下: 先执行when='setup' 返回setup 的执行结果 然后执行when='call' 返回call 的执行结果 最后执行when='teardown'返回teardown 的执行结果 运行案例 conftest.py 写 pytest_runtest_makereport 内容,打印运行过程和运行结果

基于pytest实现appium多进程兼容性测试

北城余情 提交于 2020-08-10 05:12:37
前言 在实际工作中,如果要用appium实现多设备的兼容性测试,大家想到的也许是“多线程”,但由于python中GIL的影响,多线程并不能做到"多机并行",这时候可以考虑使用多进程的方式 为什么基于pytest 我们知道,pytest中的conftest.py可以定义不同的fixture,测试用例方法可以调用这些fixture,来实现数据共享。以前的框架的思路是:Common目录下的base_driver.py定义生成driver的方法-->conftest.py中调用前者生成driver-->TestCases下的测试用例调用fixture,来实现driver共享 。但是现在不同了,我们有多个设备,这些设备的信息如果只是单纯的写在yml中,我们并行去取的时候似乎也不方便,那可以写在哪里?conftest.py似乎也不是写设备信息的好地方,最后只剩下了main.py,而且将main.py作为多进程的入口再合适不过了 但问题又来了,如果我们想启动多个appium服务,需要考虑以下几点: appium通过什么方式启动? 设备信息如何传递给base_driver方法来生成driver 第一点很明确,客户端启动appium server的方式似乎有点不合时宜了,如果你要同时测5个手机,难道要一个个启动客户端吗?最好的方式是启动命令行,因为命令行启动更方便更快 再说第二点前,先整理一下思路

PO设计模式-实现移动端自动化测试

為{幸葍}努か 提交于 2020-08-10 02:06:12
开发环境:python 3.6.5 + selenium 2.48.0 + pytest框架 + Android 5.1 工具:pycharm + Appium + Genymotion 测试机型:Samsung Galaxy S6 #需求:设计 3个测试用例 # 1 .实现点击设置 ->显示 ->放大镜(查找) ->输入内容 ->点击返回按钮 # 2 .实现点击设置 ->更多 ->移动网络 ->首选网络类型 ->2G # 3 .实现点击设置 ->更多 ->移动网络 ->首选网络类型 ->3G 以下是PO模式设计文件目录 加入我们,群,642830685,领取最新软件测试资料大厂面试和Python自动化、接口、框架搭建学习资料! 实现设计模式前: ``` import time from appium import webdriver class TestSetting : def setup ( self ) : # server 启动参数 desired_caps = { } # 设备信息 desired_caps [ 'platformName' ] = 'Android' desired_caps [ 'platformVersion' ] = '5.1' desired_caps [ 'deviceName' ] = '192.168.56.101:5555' #

Pytest单元测试框架——Pytest+Allure+Jenkins的应用

痞子三分冷 提交于 2020-08-09 16:30:14
一、简介   pytest+allure+jenkins进行接口测试、生成测试报告、结合jenkins进行集成。   pytest是python的一种单元测试框架,与python自带的unittest测试框架类似,但是比unittest框架使用起来更简洁,效率更高   allure-pytest是python的一个第三方库。用于连接pytest和allure,使它们可以配合在一起使用。   allure-pytest基于pytest的原始执行结果生成适用于allure的json格式结果。该json格式结果可以用于后续适用allure生成html结果。 二、安装     1、安装pytest,命令行或终端中输入 1 pip install pytest   2、安装allure-pytest,安装成功 1 pip install allure-pytest   allure-pytest安装成功后截图如下。   3、下载安装JDK   官方下载: https://www.oracle.com/java/technologies/javase-jdk11-downloads.html   安装与配置不作阐述请谅解     4、下载安装Jenkins   官方下载: https://www.jenkins.io/   安装与配置不作阐述请谅解 三、下载Allure并配置  

单元测试框架的选择

拥有回忆 提交于 2020-08-09 15:52:26
今天给大家介绍单元测试的概念,以Python语言为基础,带你了解如何选择单元测试框架。 单元测试 1、定义 单元测试是指,对软件中的最小可测试单元在与程序其他部分相隔离的情况下进行检查和验证的工作,这里的最小可测试单元通常是指函数或者类。 2、为什么要做单元测试 从“基础元件”开测,单元测试对象是代码,以函数或类为单位,完成基础测试,在代码封装成“功能”后,更容易定位功能上出现的问题 3、单元测试用例 通常来讲,单元测试的用例是一个“输入数据”和“预计输出”的集合。 你需要针对确定的输入,根据逻辑功能推算出预期正确的输出,并且以执行被测试代码的方式进行验证,用一句话概括就是“在明确了代码需要实现的逻辑功能的基础上,什么输入,应该产生什么输出”。 如果对软件测试、接口测试、自动化测试、面试经验交流感兴趣可以加软件测试交流:1085991341,会有不定期的发放免费的资料链接,还会有同行一起技术交流。 4、几个概念 驱动代码、桩代码、Mock代码 驱动代码 (Driver)指调用被测函数的代码,在单元测试过程中,驱动模块通常包括调用被测函数前的数据准备、调用被测函数以及验证相关结果三个步骤。驱动代码的结构,通常由单元测试的框架决定。 桩代码 (Stub)是用来代替真实代码的临时代码。 比如,某个函数A的内部实现中调用了一个尚未实现的函数B,为了对函数A的逻辑进行测试

How to skip tests based on condition in pytest?

▼魔方 西西 提交于 2020-08-09 09:12:11
问题 Below is the snippet of conftest.py , which accepts command line arguments. conftest.py import sys,json,pytest import logging def tear_down(): logging.info(" tear-down after all tests") def pytest_addoption(parser): parser.addoption("--a1", action="store", default="default_a1", help="value of a1") parser.addoption("--b1", action="store", default="default_b1", help="value of b1") @pytest.fixture(scope="class",autouse=True) def set_up(request): logging.info("set-up before all tests") a1 =

如何利用tox打造自动自动化测试框架,看完就懂

末鹿安然 提交于 2020-08-08 20:43:38
什么是tox tox官方文档的第一句话 standardize testing in Python,意思就是说标准化python中的测试,那是不是很适合测试人员来使用呢,我们来看看他究竟是什么? 根据官方文档的解释,tox是一个管理测试虚拟环境的命令行工具,可以支持穿件隔离的python环境,在里面可以安装不同版本的python解释器和项目的各种依赖库,可以进行自动化测试、打包以及持续集成。 tox能做什么 创建测试虚拟环境 运行静态代码分析与测试工具 自动化构建包 针对 tox 构建的软件包运行测试 检查软件包是否能在不同的 Python 版本/解释器中顺利安装 统一持续集成(CI)和基于命令行的测试 怎么配置tox 安装tox 使用 pip install tox 安装,在命令行执行tox -e envname运行指定的测试环境 tox配置 tox的行为既可以通过命令行来控制也可以通过配置文件进行控制,支持有以下三种形式的配置文件 pyproject.toml tox.ini setup.cfg 什么是tox tox官方文档的第一句话 standardize testing in Python,意思就是说标准化python中的测试,那是不是很适合测试人员来使用呢,我们来看看他究竟是什么? 根据官方文档的解释,tox是一个管理测试虚拟环境的命令行工具

python之pytest框架实现

佐手、 提交于 2020-08-05 20:47:06
一、pytest测试框架简介: pytest是一个非常成熟的全功能的Python测试框架,主要有以下几个特点: 简单灵活,容易上手 支持参数化 能够支持简单的单元测试和复杂的功能测试,还可以用来做selenium/appnium等自动化测试、接口自动化测试(pytest+requests) pytest具有很多第三方插件,并且可以自定义扩展,比较好用的如pytest-selenium(集成selenium)、pytest-html(完美html测试报告生成)、pytest-rerunfailures(失败case重复执行)、pytest-xdist(多CPU分发)等 测试用例的skip和xfail处理 可以很好的和jenkins集成 report框架----allure 也支持了pytest 二、安装 通过pip install pytest命令安装pytest,且自动安装所依赖的一些模块 三、测试 代码如下: 1 import pytest 2 def test_001(): 3 print ( " test_01 " ) 4 5 def test_002(): 6 print ( " test_02 " ) 7 8 def add(x,y): 9 return x + x 10 11 def test_add(): 12 assert add(1,1) == 2 13 14

Python项目开发实战(第2版)PDF高清完整版免费下载|百度网盘

别说谁变了你拦得住时间么 提交于 2020-08-05 17:04:31
百度网盘:Python项目开发实战(第2版)PDF高清完整版免费下载 提取码:exep 内容简介 本书来自真正的开发现场,是BePROUD公司众多极客在真实项目中的经验总结和智慧结晶。作者从Python的环境搭建开始讲起,介绍了Web应用的开发方法、项目管理及审查、测试与高效部署、服务器调试等内容,尽可能网罗了Python项目开发流程中的方方面面,有助于开发者建立有序生产环境,提高开发效率,让编程事半功倍。此外,在本书中Python仅仅是一个载体,很多知识点在非Python下也适用。 作者简介 日本BePROUD股份有限公司 BePROUD是一家专注于Python开发的公司,因云集了众多行业精英而闻名于日本国内。多年来的软件开发硕果累累,其精湛的技术水平,得到了客户及业界人士的认可和好评。 目录 第1部分 Python开发入门  1 第1章 Python入门  2 1.1 安装Python  2 1.1.1 安装deb包  3 1.1.2 安装第三方包  4 1.1.3 virtualenv的使用方法  5 1.1.4 多版本Python的使用  7 1.2 安装Mercurial  9 1.2.1 Mercurial概述  10 1.2.2 安装Mercurial  10 1.2.3 创建版本库  11 1.2.4 文件操作  12 1.3 编辑器与辅助开发工具  14 1.3