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

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6

一、简介

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并配置

下载allure并配置

1、allure官网下载https://github.com/allure-framework/allure2/releases

如下图所示

  2、allure2下载下来是一个zip的压缩包我们要解压至自己的文件目录下可解压放至项目的测试用例下或python安装目录下自己可找到文件即可。

  3、打开allure2目录找到bin目录复制bin文件目录 然后进行环境变量的配置设置环境变量的目的就是让系统无论在哪个目录下都可以运行allure2。

  4、环境变量设置桌面——我的电脑——右键属性——高级系统配置——环境变量——系统变量——Path——编辑环境变量——把我们上面复制的目录路径新增至环境变量中即可

  设置环境变量如下图所示。

  5、配置好后打开cmd终端输入allure出现以下帮助文档就说明配置成功了。

现在我也找了很多测试的朋友做了一个分享技术的交流群共享了很多我们收集的技术文档和视频教程。
如果你不想再体验自学时找不到资源没人解答问题坚持几天便放弃的感受
可以加入我们一起交流。而且还有很多在自动化性能安全测试开发等等方面有一定建树的技术大牛
分享他们的经验还会分享很多直播讲座和技术沙龙
可以免费学习划重点开源的
qq群号110685036


四、Allure装饰器描述

  Allure装饰器


五、Pytest+Allure的应用

  上述我们讲了一些理论的知识下面我们就来实战练习一下吧。进一步理解Pytest+allure如何结合应用的。

  1、新建testcase文件夹用来存放测试用例新建test_Demo.py文件作为pytest的具体测试用例文件。在test_Demo.py文件中输入以下代码。

 # test_Demo.py
 # Creatorwuwei
 # Date2020-06-09
 
 import pytest
 import requests
 import allure
 import sys
 sys.dont_write_bytecode = True
 
 @allure.epic('测试描述'.center(30, '*'))
 @allure.feature('测试模块')
 @allure.suite('测试套件')
 class TestPytestOne():
     @allure.story('用户故事描述用例一')
     @allure.title('测试标题用例一')
     @allure.description('测试用例描述用例一')
     @allure.testcase('测试用例地址:https://www.baidu.com/')
     @allure.tag('测试用例标签用例一')
     def test_one(self):
         print('执行第一个用例')
         assert 1 == 1
 
     @allure.story('用户故事描述用例二')
     @allure.title('测试标题用例二')
     @allure.description('测试用例描述用例二')
     @allure.testcase('测试用例地址:https://www.sogou.com/')
     @allure.tag('测试用例标签用例二')
     def test_two(self,action):
         print('执行第二个用例')         assert True == True
 
 # pytest运行
 if __name__ == "__main__":
     pytest.main(['-s', '-v', 'test_Demo.py', '-q', '--alluredir', '../reports'])

  2、我们再来创建一个conftest.pyconftest用来共享数据及不同层次之间共享使用的文件测试用例的前置和后置中一般都可以用到的。

 # conftest.py
 # Creatorwuwei
 # Date2020-06-09
 
 import pytest
 import sys
 sys.dont_write_bytecode = True
 
 @pytest.fixture()
 def action():
     print("测试用例开始".center(30, '*'))
     yield
     print("测试用例结束".center(30, '*'))

  3、运行test_Demo.py文件test_Demo文件中已经pytest+allure的结合可查看allure的运行结果可看出在根目录中生成了一个reports文件夹其中生成了测试报告的json文件这里面的json文件可通过allure生成html的测试报告。
  运行test_Demo.py终端显示如下图所示。

  生成的Json格式的测试报告如下图所示。

  4、使用allure将json文件生成html的测试报告定位至项目文件根目录下运行以下命令会在项目根目录下生成一个名为allure_reports的文件夹用来存放html测试报告。命令下如所示。

1 allure generate reports -o allure_reports/

  成功运行allure结果如下图所示。

  项目根目录下的allure_reports文件存放的是allure生成的测试报告。可看出文件下有一个HTML文件可通过Python的编辑器Pycharm来打开该HTML文件测试报告或可通过allure命令来打开该HTML展示HTML测试报告。如下所示。

  测试报告文件HTML测试报告如下。

  allure命令打开HTML测试报告。命令如下所示。

1 allure open allure_reports/

  如下图所示。

  打开生成的HTML测试报告如下图所示。


六、Pytest+Allure+Jenkins的应用

  1、Jenkins插件网站上下载allure插件最新版本

    http://mirrors.jenkins-ci.org/plugins/allure-jenkins-plugin/

  2、Jenkins的安装我已经在Postman+Newman+Git+Jenkins的篇章中讲过了没看小伙伴可以看一下那篇文章。确认Jenkins服务是否开启。确认开启后在浏览器中输入http://localhost:8080/进入Jenkins配置页面。

  3、http://localhost:8080/登录Jenkins的页面在管理Jenkins——插件管理——高级中找到上传插件。将1步骤中下载的.hpi的文件上传至jenkins上。

  上传安装好的allure-jenkins-plugin的插件安装完成并成功是蓝色圆点显示因我已经安装过一次会提示已经安装重启Jenkins即可生效。注意不是关闭浏览器重新打开而是重启Jenkins服务

  4、全局变量中配置allure路径与JDK的路径

  配置JDK安装的路径如下图所示。

  配置allure安装的路径如下图所示。

  5、新建Item配置构建后的allure测试报告生成。这里配置Pytest执行完成之后生成的allure文件所在的目录位置。

  项目中生成allure的json测试报告的位置。需与下面构建后操作中的Results的Path文件一致。

  构建后操作的allure生成测试报告的配置如下图所示

  6、配置构建命令。就是上述在cmd中运行项目时的命令。如下图所示。

注意运行后发现有报错。“Build step 'Execute Windows batch command' marked build as failure”解决方案在运行项目的命令后添加exit 0。如下图所示。

  7、修改运行命令后我们再来运行一下。我们可发现运行后allure里面没任务数据。因为我们还没设置运行的项目路径。设置工作空间打开工作空间目录将我们的项目复制到jenkins的工作目录中。

  我们可将代码传至GitHub上在Jenkins中设置相关Github项目的配置也可进行Jenkins部署。我在Postman+Newman+Git+Jenkins这篇博客里就应用到了。有兴趣的可参考看看这篇Jenkins如何Git项目。在这里我们使用本地项目来部署。

  测试报告无数据因为工作空间里面没有项目配置。

  复制项目至Jenkins工作空间的目录中。

8、添加项目后我们再运行一下蓝点则为运行成功可看到后面已经生成了allure的测试报告了。可直接点击后面的alluree图标跳转至HTML的测试报告。如下图所示。

 allure生成的HTML测试报告

八、总结

  上述我们聊了下pytest+allure+jenkins如何结合集成一起使用的本地启动jenkins运行项目调用allure生成测试报告。也简单的做了一个小Demo。后期我将结合Requests接口测试和seleniumWeb测试应用至具体项目中。

敲字不易如果此文章对你有帮助的话点个赞收个藏给作者一个鼓励。也方便你下次能够快速查找。

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6