从零开始搭建一个简单的ui自动化测试框架04(pytest+selenium+allure)

简介: 四、自动化测试的持续集成(pytest+allure2+jenkins)为什么要实现持续集成回顾一下,先期我们所做的已经可以实现一个挺完整的测试过程了,从用例的管理到执行到报告的发送都可以实现,但目前还差个闭环。

四、自动化测试的持续集成(pytest+allure2+jenkins)

为什么要实现持续集成

回顾一下,先期我们所做的已经可以实现一个挺完整的测试过程了,从用例的管理到执行到报告的发送都可以实现,但目前还差个闭环。

目前我们的测试执行,是靠人手动执行的,无法实现无人值守,例如,我想实现,当项目工程代码被构建时,自动执行测试回归一下本次代码的改动有没有影响,如果只靠手动执行,就只能派个人等着构建结束了,极其不方便;此外,我的测试代码更新了,如果靠自己去上传,也很麻烦。

设想一下,如果实现了,我本地的测试代码更新之后,可以有个地方自动拉取我的代码,然后按我设定的时机(例如项目代码构建后,或者每天的固定时间)自动执行回归测试,测试完了自动给我发送测试结果,是不是更为理想的测试流程呢?而这也是持续集成的意义所在。

如果使用之前介绍的unittest的话,那么本章没有什么多余的介绍,只要配置好jenkins,然后新建一个执行用例的job就行了,不过本章打算介绍一个新的搭配方式,更方便,更简单。

安装pytest

pytest是python上的一个测试框架,兼容unittest的语法,因为之后的测试报告生成需要pytest的支持,所以我们要先装一下这个框架。

安装pytest:cmd界面输入命令:pip install pytest;

安装allure2

allure2是一个测试报告的框架,支持多种语言、测试框架,比起前面提到的HTMLTestRunner有着更加漂亮的界面,更加直观的图表统计,以及更为丰富的可添加信息。

allure2的界面:

img_5d6ab2d79a60d45e0d40e08ff27be15f.png
image

安装allure2需要先配置java环境(推荐java8),以及安装pytest。

安装pytest_allure_adaptor:cmd界面输入命令:pip install pytest_allure_adaptor 。

这样allure2就安装好了。

在jenkins上使用pytest执行用例生成allure报告

jenkins是一个很著名的ci软件,这里就不多介绍了,安装完jenkins之后,我们需要先在jenkins上配置一下。

首先安装allure的插件,在jenkins---系统管理---管理插件---可选插件的列表里,勾选安装插件 Allure Jenkins Plugin 、HTML Publisher plugin;

然后进入jenkins---系统管理---全局工具配置,如下图配置好(不要完全照抄哦,参数是本地的话需要填你本地的路径):

img_41a55a514e2cd0a094a5b8b0d45294c9.png
image

img_5740356eef09eafadfd5fc22c2d02fb3.png
image

再进入jenkins---系统管理---系统设置,拉到最下面,设置问题追踪,在Allure Report 下选择增加

Key: allure.issues.tracker.pattern Value: http://tracker.company.com/%s

如图配置:


img_de8588fd3ee378078a2f75598cf341f0.png
image

最后进入jenkins---系统管理---脚本命令行,输入如下命令执行权限代码,点击执行

System.setProperty("hudson.model.DirectoryBrowserSupport.CSP", "default-src 'self'; script-src 'self' 'unsafe-inline' 'unsafe-eval'; style-src 'self' 'unsafe-inline';")

,如图配置:

img_690149a4f9efdeca1a71df1b82fe6803.png
image

这样我们在jenkins里的配置基本设置完了,接下来我们新建一个job来使用pytest运行我们的测试用例,并生成allure2的测试报告。

进入jenkins---新建item---输入你的任务名称---构建一个自由风格的软件项目,然后配置你的项目,在构建里输入命令:

python -m pytest 你测试用例的目录 --alluredir allure-result

再增加一个构建后操作,选择Allure Report,path里填上报告中间文件目录,也就是上面命令里的allure-result,再点击高级,设置最终生成报告的目录,在Report path里填上allure-report。
这里解释一下,allure是这样的,执行第一个命令:

python -m pytest 你测试用例的目录 --alluredir allure-result

的时候,其实是执行你的测试用例,并把结果生成一个中间文件,用于生成最终的报告,也就是说,这里生成的并不是最终的报告,allure-result只是中间文件的路径,这个路径需要和下面的构建后操作AllureReport里的Results的Path的值一致。
而Allure Report这个构建后操作其实是执行的另一个命令,大家在执行后的Console Output里也能看到这个命令,这里贴出来:

[Allure report] $ "C:\Program Files (x86)\Jenkins\tools\ru.yandex.qatools.allure.jenkins.tools.AllureCommandlineInstallation\allure\bin\allure.bat" generate "中间文件的路径" -c -o "最终报告的路径"

解释一下这个命令,C:\Program Files (x86)\Jenkins\tools\ru.yandex.qatools.allure.jenkins.tools.AllureCommandlineInstallation\allure\bin\allure.bat这个路径是allure转换报告工具的路径,这个工具你也可以单独下载,这里暂时不提;

generate是把中间文件生成最终报告的指令, -c -o 前面的是你中间文件的路径,之后的是最终生成报告的路径。

至此,我们的无人值守执行用例并自动生成报告就算实现了,我们可以给这个job设置执行时间点或者把这个job挂在别的构建项目下实现定点执行和定时机执行。

当然,还有最后一步,光是执行还不行,我们需要执行之后自动给我们发出通知,告诉我们执行的结果,这里用到的是jenkins的邮件通知插件Extended E-mail Notification,下面讲解一下怎么设置邮件通知。

首先我们安装这个插件,还是jenkins---系统管理---管理插件,然后在可选插件里搜索Extended E-mail Notification并安装。

安装完之后,进入jenkins---系统管理---系统设置,先找到Jenkins Location栏,设置系统管理员邮件地址为你的发件邮箱,然后找到Extended E-mail Notification栏,这里我以QQ邮箱举例设置,

先设置SMTP server为 smtp.qq.com;

Default user E-mail suffix填 @qq.com;

然后点开高级,勾选Use SMTP Authentication;

User Name填你的发件地址,和管理员地址保持一致;

Password填你的QQ邮箱的smtp服务授权码,而不是你的QQ密码,不知道的话自己去邮箱的设置页里找;

Use SSL勾选;

SMTP port填465;

下面的Default Recipients填你的收件地址;

Default Content内容稍微改一下,改为:

$PROJECT_NAME - Build # $BUILD_NUMBER - $BUILD_STATUS:

Check console output at ${BUILD_URL}allure/ to view the results.  

下面的Enable Debug Mode记得勾选,方便发送失败看日志,再点开Default Triggers设置你邮件的发送时机,到这里插件的设置就完毕了。

然后回到你上面job的配置页面,增加一个构建后操作Editable E-mail Notification即可。

现在,项目构建完之后就会自动把报告的地址发送给你预定的邮箱。

邮件内容:

img_b3f58b3592452b6f76ae5dfa72b799a5.png
image

参考资料

  1. Python + Allure(报告)+ Jenkins(持续集成)接口自动化测试环境搭建
  2. allure--开源 report 框架阶段性总结介绍
  3. Allure2-开源 report 框架介绍 (Allure+Jenkins)
  4. Allure Report
  5. Jenkins 邮件配置 (使用 Jenkins Email Extension Plugin)
目录
相关文章
|
2月前
|
数据采集 测试技术 Python
自动化淘宝秒杀:使用Selenium WebDriver的实战指南
本文详细介绍了如何利用Selenium WebDriver自动化淘宝秒杀操作,包括环境配置、代码实现及注意事项,旨在帮助读者提升秒杀成功率,同时提醒合理使用以遵守平台规则。
141 8
|
3月前
|
数据采集 存储 JavaScript
自动化数据处理:使用Selenium与Excel打造的数据爬取管道
本文介绍了一种使用Selenium和Excel结合代理IP技术从WIPO品牌数据库(branddb.wipo.int)自动化爬取专利信息的方法。通过Selenium模拟用户操作,处理JavaScript动态加载页面,利用代理IP避免IP封禁,确保数据爬取稳定性和隐私性。爬取的数据将存储在Excel中,便于后续分析。此外,文章还详细介绍了Selenium的基本设置、代理IP配置及使用技巧,并探讨了未来可能采用的更多防反爬策略,以提升爬虫效率和稳定性。
221 4
|
1月前
|
Web App开发 数据采集 JavaScript
CDP与Selenium相结合——玩转网页端自动化数据采集/爬取程序
本文介绍了Selenium、Chrome DevTools及Chrome DevTools Protocol (CDP) 的基本功能与应用。Selenium是一款开源自动化测试工具,适用于网页端应用程序测试和数据采集,具备跨平台特性。Chrome DevTools内置浏览器中,提供调试、分析Web应用程序的功能,包括元素、控制台、源代码和网络选项卡等。CDP是一套用于与Chromium内核浏览器通信的API,支持自动化测试和性能分析。文中还展示了Selenium与CDP结合使用的示例,如捕获网络请求数据和打印网页内容,并推荐了相关书籍和资源以供深入学习。
182 39
CDP与Selenium相结合——玩转网页端自动化数据采集/爬取程序
|
1月前
|
Web App开发 IDE JavaScript
Selenium IDE:Web自动化测试的得力助手
Selenium IDE:Web自动化测试的利器。作为开源工具,Selenium IDE支持录制与回放用户操作,适用于Chrome、Firefox等多浏览器,简化了测试流程,提升了效率,降低了自动化测试的门槛。它还支持导出多种编程语言的脚本,便于测试集成与复用。
118 31
Selenium IDE:Web自动化测试的得力助手
|
18天前
|
存储 测试技术 API
pytest接口自动化测试框架搭建
通过上述步骤,我们成功搭建了一个基于 `pytest`的接口自动化测试框架。这个框架具备良好的扩展性和可维护性,能够高效地管理和执行API测试。通过封装HTTP请求逻辑、使用 `conftest.py`定义共享资源和前置条件,并利用 `pytest.ini`进行配置管理,可以大幅提高测试的自动化程度和执行效率。希望本文能为您的测试工作提供实用的指导和帮助。
83 15
|
2月前
|
Java 测试技术 持续交付
【入门思路】基于Python+Unittest+Appium+Excel+BeautifulReport的App/移动端UI自动化测试框架搭建思路
本文重点讲解如何搭建App自动化测试框架的思路,而非完整源码。主要内容包括实现目的、框架设计、环境依赖和框架的主要组成部分。适用于初学者,旨在帮助其快速掌握App自动化测试的基本技能。文中详细介绍了从需求分析到技术栈选择,再到具体模块的封装与实现,包括登录、截图、日志、测试报告和邮件服务等。同时提供了运行效果的展示,便于理解和实践。
149 4
【入门思路】基于Python+Unittest+Appium+Excel+BeautifulReport的App/移动端UI自动化测试框架搭建思路
|
3月前
|
测试技术
自动化测试项目学习笔记(五):Pytest结合allure生成测试报告以及重构项目
本文介绍了如何使用Pytest和Allure生成自动化测试报告。通过安装allure-pytest和配置环境,可以生成包含用例描述、步骤、等级等详细信息的美观报告。文章还提供了代码示例和运行指南,以及重构项目时的注意事项。
376 1
自动化测试项目学习笔记(五):Pytest结合allure生成测试报告以及重构项目
|
3月前
|
JavaScript 前端开发 测试技术
精通Selenium:从基础到高级的网页自动化测试策略
【10月更文挑战第6天】随着Web应用变得越来越复杂,手动进行功能和兼容性测试变得既耗时又容易出错。自动化测试因此成为了现代软件开发不可或缺的一部分。Selenium是一个强大的工具集,它支持多种编程语言(包括Python),允许开发者编写脚本来模拟用户与Web页面的交互。本文将带领读者从Selenium的基础知识出发,逐步深入到高级的应用场景,通过丰富的代码示例来展示如何高效地进行网页自动化测试。
762 5
|
3月前
|
测试技术 Python
自动化测试项目学习笔记(四):Pytest介绍和使用
本文是关于自动化测试框架Pytest的介绍和使用。Pytest是一个功能丰富的Python测试工具,支持参数化、多种测试类型,并拥有众多第三方插件。文章讲解了Pytest的编写规则、命令行参数、执行测试、参数化处理以及如何使用fixture实现测试用例间的调用。此外,还提供了pytest.ini配置文件示例。
82 2
|
2月前
|
Web App开发 设计模式 JavaScript
自动化测试之美:如何利用Selenium实现Web应用的高效测试
【10月更文挑战第29天】在软件开发的世界中,测试是确保产品质量的关键步骤。本文将带你了解如何使用Selenium这一强大的自动化测试工具,提高Web应用测试的效率和准确性。通过实际案例,我们将探索Selenium的核心功能及其在现代软件开发中的应用,旨在帮助读者掌握自动化测试的精髓,从而提升软件测试工作的整体效能。
67 0

热门文章

最新文章