pytest

基于Python豆瓣自动化测试【2】

試著忘記壹切 提交于 2020-08-17 02:45:58
—— Pytest基础使用教程【2】 从测试报告说起 承接上一篇中最后的测试结果图,使用过的pytest-html 插件原生态的报告的话。可能会发现 内容样式都有些不同。其实是做了些扩展相关设置所呈现的效果,当然可以定制的更深度一些,更加中文、本地化,又或者根据公司需要进行定向研发。例如就上文中的测试报告进行一些中文定制改造后效果如下图所示。这篇就如何优化、定制pytest-html 测试报告进行些讲解 Pytest-html 扩展 目前最新的 pytest-html版本为2.1.1 。这个版本共提供 5个Hook,分别是: def pytest_html_report_title(report) 设置测试报告的标题 def pytest_html_results_summary(prefix, summary, postfix) 在Summary部分,添加自定义内容 def pytest_html_results_table_header(cells) 定制 Result 部分,表单的头部 def pytest_html_results_table_row(report, cells) 定制Result部分,每行测试Case的内容 def pytest_html_results_table_html(report, data) 在完成Result渲染后

pytest+yaml+allure接口自动化测试框架

两盒软妹~` 提交于 2020-08-16 08:18:41
前言 趁着这个周末闲来无事,简单的开发了一个接口自动化测试框架。 由于我本人也是接口自动化测试的新手,如有不合理或是不正确的地方请多多指教。 流程说明图 这张图是我的一些设计思路。 在yaml文件中管理相关的数据即可实现接口测试。 采用的接口是 智学网 网站的API。 支持 token 认证 框架体系介绍 目录/文件 说明 是否为 python 包 apiData 存放测试信息和用例的 yaml 文件目录 basic 基类包,封装 requests , json 等常用方法 是 common 公共类,封装读取 yaml 文件, cookies 等常用方法 是 config 配置目录,目录配置,allure环境变量配置 是 logs 日志文件 Test 测试用例 是 tools 工具类,日志等 是 pytest.ini pytest配置文件 run.bat 执行脚本 readme.md 自述文件 配置用例信息 经过excel和yaml的对比,最终我选择了yaml文件管理用例信息。 BusinessInterface.yaml 业务接口测试 登录验证: method: post route: /loginSuccess/ RequestData: data: userId: "{{data}}" expectcode: 200 regularcheck: resultcheck: '

yamlapi docker镜像

末鹿安然 提交于 2020-08-16 04:28:41
一、目录结构: pip.conf文件: [global] index-url = https://mirrors.aliyun.com/pypi/simple/ [install] trusted-host=mirrors.aliyun.com requirements.txt文件: requests>= 2.23.0 ddt>= 1.4.1 PyMySQL>= 0.9.3 DBUtils>= 1.3 BeautifulReport>= 0.1.2 demjson>= 2.2.4 loguru>= 0.5.0 PyYAML>= 5.3.1 ruamel.yaml>= 0.16.10 pytest>= 5.4.2 pytest-html>= 2.1.1 allure-pytest>= 2.8.16 pytest-reportlog>= 0.1.1 pytest-assume>= 2.2.1 pytest-rerunfailures>= 9.0 pytest-sugar>= 0.9.3 pytest-timeout>= 1.3.4 pytest-parallel>= 0.1.0 psycopg2-binary== 2.8.5 Dockerfile文件: FROM python: 3.6.9 # 基础镜像 MAINTAINER yangjianliang < 526861348@qq

学会这个,助你升值加薪自动化框架之python+selenium+pytest

大兔子大兔子 提交于 2020-08-16 00:01:25
1.概述 selenium: 基于JavaScript代码库的自动化测试框架,通过脚本语言,模拟用户行为操作,最接近用户真实场景,实现对web自动测试。 Selenium,是目前的最火爆企业最主流的webUI自动化框架 pytest: pytest是一个非常成熟的全功能的Python测试框架,是unittest框架的扩展,主要特点有以下几点: 1、简单灵活,非常方便的组织自动化测试用例; 2、支持参数化,可以细粒度地控制要测试的测试用例; 3、能够支持简单的单元测试和复杂的功能测试,比如web端selenium/移动端appnium等自动化测试、request接口自动化测试 4、pytest具有很多第三方插件,并且可以自定义扩展,比如测试报告生成,失败重运行机制 5、测试用例的skip和fail处理; 6、结合业界最美的测试报告allure+Jenkins,持续集成 2.环境搭建 pip install -U pytest pytest-xdist #多线程 pip install -U pytest-rerunfailures #重试运行cases pip install pytest-html#生成测试报告 pytest --version #会展示当前已安装版本 3.编写规则 编写pytest测试样例非常简单,只需要按照下面的规则: 测试文件以test_开头(以

单元测试框架的选择

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

PO模式你会吗?自动化测试PO模式分层如何实现?

对着背影说爱祢 提交于 2020-08-14 13:22:02
一、什么是PO模式 全称:page object model 简称:POM/PO PO模式最核心的思想是分层,实现松耦合!实现脚本重复使用,实现脚本易维护性! 主要分三层: 1.基础层BasePage:封装一些最基础的selenium的原生的api方法,元素定位,框架跳转等。 2.PO层:元素定位、获得元素对象,页面动作 3.测试用例层:业务逻辑,数据驱动! 三者的关系:PO层继承继承层,测试用例层调用PO层! 二、什么是自动化测试框架 说到自动化框架,我相信很多人应该都听过这个词,但是不知其到底是个什么东西,为什么要用自动化框架。有很多人堆自动化框架都是懵懵懂懂,就跟谈恋爱一样,朦胧美! 一个好的自动化测试框架是可以让不那么懂技术的人也可以写自动化测试脚本的, 一个好的自动化测试框架可以减少自动化测试中脚本管理和维护当中的人力物力和财力。 其实自动化框架的一个最大的意义在于可重用性。因为在框架里,你可以实现很多的通用功能来简化整个脚本的开发过程。并且生成美观的测试报告。 三、非PO模式和PO模式优缺点对比 自动化软件测试交流!!!群:642830685,领取最新软件测试资料大厂面试和Python自动化学习资料!一起学习交流 非PO模式 面向过程的线性脚本POM把页面元素定位和业务操作流程分开。实现松耦合。 复用性差UI元素的改变不需要修改业务逻辑代码

TAPD关联Jenkins

自闭症网瘾萝莉.ら 提交于 2020-08-13 16:01:54
此为系列博客 阿里云服务器 CentOS7 Tomcat + Jenkins+国内镜像 TAPD关联Jenkins (当前位置) TAPD pytest自动化测试部署 (git or 本地) TAPD的关联主要参考官方文档https://www.tapd.cn/help/view#1120003271001002987 1. 在TAPD中的操作 首先在流水线设置中找到Jenkins 然后下载插件,并点击新增服务 记录Webhook,一会儿要用 2. 在Jenkins中的操作 在系统管理中找到插件管理 选择刚才下载的插件,安装,重启 点击用户名,选择设置,添加API Token,记得复制 插件配置 在系统管理中找到TAPD Jenkins名称随便搞 访问地址就是当前Jenkins的url API Token就是刚才的API Token Webhook和Secrect Token 就是在TAPD平台中的内容 3. 配置成功! 如果配置成功的话,就可以在TAPD平台流水线配置中的“关联已有服务”中找到自己的流水线啦 ———————————————— 来源: oschina 链接: https://my.oschina.net/xiaominmin/blog/4294753

pytest环境准备与入门

狂风中的少年 提交于 2020-08-13 00:04:16
前言 pytest 是 python2 默认自带的,python3 的版本 pytest 框架独立出来了,需用 pip 安装。以下为 python3.7版本为例 pytest是python的一种单元测试框架,与python自带的unittest测试框架类似,但是比 unittest 框架使用起来更简洁,效率更高。 根据pytest 的官方网站介绍,它具有如下特点:   非常容易上手,入门简单,文档丰富,文档中有很多实例可以参考   能够支持简单的单元测试呾复杂的功能测试   支持参数化   执行测试过程中可以将某些测试跳过(skip),戒者对某些预期失败的 case 标记成失败   支持重复执行(rerun)失败的 case    支持运行由 nose, unittest 编写的测试 case   可生成 html 报告   方便的呾持续集成工具 jenkins 集成   可支持执行部分用例   具有很多第三方插件,并且可以自定义扩展 安装 pytest 使用 pip 直接安装   pip install -U pytest pip show pytest 查看安装版本 - 用例运行规则 前言 当我们使用 pytest 框架写用例的时候,一定要按它的命名规范去写用例,返样框架才能找到哪些是用例需要执行,哪些不是用例不需要执行。 用例设计原则   文件名以 test_*.py 文件和

自从学会了Python自动化Pytest框架,领导再也不敢在我背后指手划脚了

谁说胖子不能爱 提交于 2020-08-12 20:41:34
前言 大家都知道Python有自带的单元测试框架unittest,那为什么还要学习Pytest呢?先了解下Pytest优点 pytest: pytest是一个非常成熟的全功能的Python测试框架,是unittest框架的扩展,主要特点有以下几点: 1、简单灵活,非常方便的组织自动化测试用例; 2、支持参数化,可以细粒度地控制要测试的测试用例; 3、能够支持简单的单元测试和复杂的功能测试,比如web端selenium/移动端appnium等自动化测试、request接口自动化测试 4、pytest具有很多第三方插件,并且可以自定义扩展,比如测试报告生成,失败重运行机制 5、测试用例的skip和fail处理; 6、结合业界最美的测试报告allure+Jenkins,持续集成 selenium : 基于 JavaScript 代码库的自动化测试框架,通过脚本语言,模拟用户行为操作,最接近用户真实场景,实现对 web 自动测试。 Selenium ,是目前的最火爆企业最主流的 webUI 自动化框架 环境搭建 pip install -U pytest pytest-xdist # 多线程 pip install -U pytest-rerunfailures # 重试运行 cases pip install pytest-html # 生成测试报告 pytest --version #

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

♀尐吖头ヾ 提交于 2020-08-12 00:31:48
前言 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 内容,打印运行过程和运行结果