参数化parametrize 先看一个简单的pytest参数化案例演示test_a.py # test_a.py import pytest import allure def login(username, password): '''登录''' print("输入账号:%s" % username) print("输入密码:%s" % password) # 返回 return {"code": 0, "msg": &qu…
前言 参数化是自动化测试里面必须掌握的一个知识点,用过 unittest 框架的小伙伴都知道使用 ddt 来实现测试用例的参数化. pytest 测试用例里面对应的参数可以用 parametrize 实现,随着用例的增多,我们的需求也会越来越多,那么如何在 fixture 中使用参数呢? fixture 源码 先看下 fixture 源码,有这几个参数:scope,params,autouse,ids,name. def fixture(scope="function", params…
前言 pytest-HTML是一个插件,pytest用于生成测试结果的HTML报告.兼容Python 2.7,3.6 pytest-html 1.github上源码地址[https://github.com/pytest-dev/pytest-html] 2.pip安装 $ pip install pytest-html 3.执行方法 $ pytest --html=report.html html报告 1.打开cmd,cd到需要执行pytest用例的目录,执行指令:pytest --html=…
前言 上一篇pytest文档2-用例运行规则已经介绍了如何在cmd执行pytest用例,平常我们写代码在pycharm比较多 写完用例之后,需要调试看看,是不是能正常运行,如果每次跑去cmd执行,太麻烦,所以很有必要学习如何在pycharm里面运行pytest用例 pycharm运行三种方式 1.以xx.py脚本方式直接执行,当写的代码里面没用到unittest和pytest框架时,并且脚本名称不是以test_开头命名的,此时pycharm会以xx.py脚本方式运行 2.当脚本命名为test_x…
前言: 虽然网上有很多邮件配置的文章,但还是想自己写一下配置的过程,因为在中间也碰到了不同坑.按照这个文档配置的话,99%都可以成功.   一.jenkins 配置邮箱 1.打开jenkins后进入点击Manage Jenkins-->configure system,找到Jenkins Location,系统管理员邮件地址要和下面的配置一致 2.下面以qq邮箱为例进行配置:点击高级之后,输入密码和邮箱的授权码   3.qq邮箱授权码的获取 然后点击账户-找到POP3/IMAP/SMTP/Exc…
前言 首先说下为什么要学pytest,在此之前相信大家已经掌握了python里面的unittest单元测试框架,那再学一个框架肯定是需要学习时间成本的. 刚开始我的内心是拒绝的,我想我用unittest也能完成自动化测试,干嘛要去学pytest呢?最近看到越来越多的招聘要求会pytest框架了,也有小伙伴出去面试说会unittest框架被鄙视的. 所以学此框架应该至少有以下2个理由,第一条已经足够: 学会了可以装逼 可以避免被面试官鄙视 python鄙视链:pytest 鄙视 > unittes…
前言 pytest 结合 allure 描述用例的时候我们一般使用 @allure.title 和 @allure.description 描述测试用例的标题和详情. 在用例里面也可以动态更新标题和详情,使用allure.dynamic方法实现. allure.dynamic 动态属性 feature 模块 allure.dynamic.feature(feature_name) 功能点 story allure.dynamic.story(case_story) 用例标题 title allu…
前言 pytest-html报告中当用到参数化时候,获取用例的nodeid里面有中文时候,会显示[\u6350\u52a9\u6211\u4eec]这种编码(再次声明,这个不叫乱码,这是unicode编码) 关于python2和python3里面Unicode编码转化可以参考之前写的一篇[python笔记6-%u60A0和\u60a0类似unicode解码] 本篇以python3.6版本为例 遇到问题 官网文档https://github.com/pytest-dev/pytest-html上说…
前言 doctest从字面意思上看,那就是文档测试.doctest是python里面自带的一个模块,它实际上是单元测试的一种. 官方解释:doctest 模块会搜索那些看起来像交互式会话的 Python 代码片段,然后尝试执行并验证结果 doctest测试用例可以放在两个地方 函数或者方法下的注释里面 模块的开头 案例 先看第一个案例,将需要测试的片段,标准格式,需要运行的代码前面加>>> ,相当于进入cmd这种交互环境执行,期望的结果前面不需要加>>> >>…
前言 pytest 的插件完成之后,可以上传到 github,方便其他小伙伴通过 pip 源码安装.如果我们想通过 pip install packages 这种方式安装的话,需上传到 pypi 仓库 pypi仓库 pip,全称是:python install packages,它是一个通用的 Python 包管理工具,是easy_install的替代品, 主要是用于安装 PyPI 上的软件包. PyPI,全称是:Python Package Index,它是Python官方的第三方库的仓库,所…