百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术资源 > 正文

全网最详细的Python自动化测试+邮件推送+企业微信推送+Jenkins

off999 2024-09-18 22:38 57 浏览 0 评论


目录


1. 概述

1.1 python自动化

1.2 邮件推送

1.3 企业微信推送

1.4 Jenkins自动化部署

2. 项目实现

2.1 python脚本

2.2 运行脚本

2.3 邮件推送

2.4 企业微信推送

2.5 Jenkins自动化部署



1. 概述

1.1 python自动化

什么是python自动化?我理解的Python自动化测试就是把以前人为测试转化为机器测试的一种过程。自动化测试是一种比手工测试更快获得故障反馈的方法。

自动化测试是一种质量保障的方式,最重要的还是以做好一款高质量产品为前提。测试工作很多时候就是在不断平衡质量、效率、驱动业务这三者之间的比例和深度。根据不同的业务阶段、不同的目标、当前的关键事件驱动,在质量、效率、驱动业务上不断地调整策略和战术。

1.2 邮件推送

在python自动化测试人员完成项目的自动化测试工作之后,需要将自动化测试报告结果发送给对应的负责人查看。如果每次执行完自动化测试之后都需要测试人员手动将测试报告转发给负责人,如果在转交的过程中发生点突发事件,测试人员忘记要将测试报告转发给负责人,负责人就会迟迟收不到想要的工作内容,这样的效率对于从事软件行业的人们来说效率是很低的。因此由生出python自动化邮件推送这个功能。

邮件传输一般是通过SMTP协议,SMTP协议是一组由源地址到目的地址传输邮件的规则。在python中通过smtplib模块对SMTP协议进行简单的封装,实现了方便的途径来发送邮件,通过SMTP的sendmail方法来发送邮件。这是一种比较通用的邮件传输方法,不过本次我给大家介绍的是unittestreport包中封装的一个邮件推送方法。这个邮件推送方法相对于传统的方法来说,更加的简洁、易懂,适用于使用unittest测试框架的脚本。通过使用python自动化邮件推送功能,就能在自动化测试结果生成之后自动邮件发送到对应负责人的邮箱之中,提高了工作效率。

1.3 企业微信推送

什么是企业微信推送呢?企业微信推送就是自动化测试人员在进行完自动化测试工作之后将测试结果信息推送到自己工作所在的企业微信测试群中,让相关人员看到项目自动化测试的执行情况,这也是一种及时将自动化测试结果共享的一种方法。

1.4 Jenkins自动化部署

什么是Jenkins呢?Jenkins是一个开源软件项目,是基于Java开发的一种持续集成工具,用于监控持续重复的工作,旨在提供一个开放易用的软件平台,使软件的持续集成变成可能。

那什么是Jenkins自动化部署呢?由于自动化测试工作的特性就是在每次版本迭代时对系统功能进行自动化测试,从而找出系统在版本迭代过程汇中可能出现的问题,这种工作具有很强的重复性。如果每次版本迭代都需要测试人员手动执行自动化脚本,对于从事软件行业工作的我们来说并不是一件很酷的事情,而且还很繁琐。由于Jenkins的作用就是用于监控持续重复的工作,所以我们将完成后的自动化测试脚本部署到Jenkins上,并设置好相应的定时器,Jenkins就能按照规定好的程序、时间来自动执行我们的自动化测试脚本,从而提高测试人员的工作效率。

2. 项目实现

2.1 python脚本

本次介绍的是基于SaaS后台管理平台账号的增删改查功能所编写的自动化测试脚本。脚本所使用的python框架是unittest框架,ui元素定位都使用的是Xpath方法。然后通过unittestreport包中的邮件推送和企业微信推送方法来便捷的实现测试报告自动推送到负责人邮箱和对应的企业微信群中。下面将详细介绍脚本实现方法:

在Pycharm编译器中创建一个.py文件,然后在py文件的最开始处导入我们脚本需要使用的文件包。由于我们的自动化测试是基于selenium框架的,并且使用的是UI元素定位方法,因此我们需要导入selenium包。使用的自动化框架是unittest,所以导入unittest包。在自动化脚本运行时,我们需要使得脚本在运行过程中有所停顿以便于观察,所以要导入time包。

将调用浏览器驱动、最大化浏览器、隐式等待和打开测试网址放在setup函数之中,由于setup函数的功能是在调用每一个新函数时都会执行一次,若使用该函数,会导致脚本元素定位的逻辑出现问题,从而导致脚本运行失败。所以我们需要的是在自动化脚本运行前调用一次setup函数即可,因此我们使用的是setUpClass函数,该函数在整个自动化脚本运行过程中只会运行一次,符合我们的预期。但又因为setUpClass函数是一个类函数,若我们将其写在一个类中,也会导致脚本运行错误,因此我们需要在函数前面添加一个@classmethod,来申明这个是一个类函数。同理在脚本运行结束之后,我们需要将自动打开的网页进行关闭,这个关闭网页的功能,我们就写在了tearDownClass类函数中。

接着我们对SaaS登录页面进行代码编写,因为我们采用的是unittest框架,因此创建的场景函数要以test开头,登录界面的函数就为test_01_login。然后通过UI元素定位来实现登录自动化,后面的增删改查环境代码编写也是如此,在这就不一一赘述。

2.2 运行脚本

SaaS后台管理的自动化脚本编写完成之后,我们需要编写一个执行此脚本的运行文件,该文件我们称之为runner文件。因为我们是基于unittest框架编写的自动化脚本,为了便捷并生成界面好看的自动化测试报告,我们在这里选用了unittestreport这个数据包,这里面封装了多个好看的测试报告模板功测试人员选择。


为了辨别生成的测试报告的版本,我们通过time.strftime()方法来给测试报告添加时间戳。然后定义个suite套件用于临时存储我们所有的测试场景脚本。那我们该如何获取之前写的那些场景脚本呢?一种方法是将之前写好的场景脚本的py文件通过import导入到当前文件中来,不过这种办法比较笨重,如果py文件很多的话,我们的工作效率就会变得很低下。所以在这我们介绍另外一种方法,就是通过unittest.defaultTestLoader.discover()方法读取我们文件所在的位置。如果脚本是在本地运行,我们可以导入脚本的绝对路径,但是如果我们要求脚本在别的环境中也能运行,那就不能读取脚本的绝对路径了,而是改为相对路径。因为我们后面还需要将脚本部署到gitlab中,所以在此我们写的就是读取脚本的相对路径。

怎么生成好看的自动化测试报告呢?接下来我们就要用到unittestreport中的TestRunner()方法了。unittestreport将python中的TestRunner()方法进行了重新编写并封装,我们只需要调用其的TestRunner()即可使用。TestRunner()中的各个参数解释在代码中都有注释,在此就不一一赘述。

模板参数填写完之后,通过使用runner.run()调用run方法执行当前脚本就可以生成我们需要的自动化测试报告了。

2.3 邮件推送

自动化测试报告生成之后,我们有两种方法来设置邮件推送结果。一种是常见的第三方SMTP服务,通过导入smtplib和MIMETEXT这两个包来编写邮件推送的方法。


不过这种常见的邮件推送方法代码相对于unittestreport中的send_email()方法来说过于繁琐。unittestreport中将smtp邮件传输方法进行了重新编写并封装,我们只需要调用其方法时,正确填写对应参数即可。

这边的smtp地址为发件人邮箱的smtp地址。如何开启邮箱的smtp服务呢?以163邮箱为例,我们可以登录邮箱后,点击【设置】-【POP3/SMTP/IMAP】中进行设置。

然后在邮箱获取STMP的授权密码并填写到send_email()方法中即可。

执行测试脚本,可以发现接收方的邮箱中受到了测试报告以及测试报告结果的附件。


2.4 企业微信推送

如何将测试报告推送到企业微信所在的测试群呢?首先我们要有一个企业微信。然后要获取自己所在企业微信群的chatid。这个chatid不是每个企业微信群都有的,必须通过接口创建的企业微信群才会有chatid。所以我们首先来讲一下如何通过接口来创建一个企业微信群并获取其chatid。

首先我们要进入企业微信服务商后台管理页面,打开服务商信息,复制我们的CorpID。

然后在企业后台管理中点击【应用管理】-【应用】-【自建】中创建一个应用。


创建完自建应用之后,我们点击进入自己创建的应用,点击查看Secret。


接着我们可以在企业微信中收到通知,获取我们需要的Secret。

获取到企业微信的CorpID和secret之后,我们进入企业微信的开发者中心,先获取创建群聊所需要的access_token。

获取到access_token之后,我们就可以进入下一步创建群聊会话。

body里面参数填写的对应要求如下:

这个时候,我们就会问,我怎么获取对应账号的userid呢?我们可以通过在企业后台管理中的【通讯录】的对应部门中找到用户姓名查看其信息,复制他的账号,然后在企业微信开发者中心的【管理通讯录】-【读取成员】,从而获取对应账号的userid。



获取到userid后我们再次回到创建群聊的接口界面,正确填写Body的对应参数。其中chatid的值为空,我们这边设置为随机生成chatid。

以上我们就获取到了我们企业微信推送的所有参数信息,然后我们调用unittestreport里面的weixin_notice()方法来实现测试报告企业微信推送了。由于access_token的有效时间为2个小时,为了避免重复修改代码,所以我们这边就不使用access_token。


参数填写完成之后,我们运行runner.py脚本。运行结束之后,企业微信中通过接口创建的群聊就会收到运行测试的结果。


2.5 Jenkins自动化部署

如何设置Jenkins自动化部署呢?首先我们需要将创建自己的gitlab账号和安装本地的Jenkins服务,如果是由服务器的那就更好了。在此我们只讲解本地的Jenkins的设置,gitlab是在公司服务器部署的。

首先是gitlab设置,我们创建完自己的gitlab账号之后,登录进入自己的gitlab账号,然后点击【项目】,创建一个新项目。

这样我们的gitlab项目就创建好了,接下来就是在pycharm编译器中设置git上传环境了。首先是需要在本地下载一个git。这边提供一个下载链接:https://git-scm.com/

git下载完后进行默认的安装,然后打开pycharm编译器进行git环境设置。

打开gitlab的项目,复制项目的存储地址。并将该地址写到pycharm的VCS->Get from Version Control ->url中。

如果是第一次在pycharm设置git环境的话,在完成上面的操作之后,会跳出gitlab的 账号密码登录窗口,我们需要输入自己的gitlab账号密码进行验证。



后面的操作一直选择第一个选项即可。然后就会出现我们在gitlab中创建的项目文件夹了。

接下来就是将我们编写的场景脚本和执行脚本上传到gitlab仓库中。


选择我们需要上传的文件,根据需求添加上传的备注信息,然后点击Commit and Push将代码文件推送到Gitlab仓库中。

点击Push推送。

脚本文件推送完成之后,pycharm左下方的Git会出现上传成功的提示。

然后我们到Gitlab中查看一下上传信息。我们可以看到从pycharm上传的代码信息,证明代码推送到Gitlab仓库成功了。


代码推送到Gitlab完成之后,我们就需要在Jenkins中部署一下自动化部署执行python脚本。

在Dos中打开进入Jenkins.war所在的目录,然后通过java -jar jenkins.war --httpPort=8889启动Jenkins。我这边是提前安装过jenkins服务,并且通过--httpPort参数指定了jenkins的服务端口。

出现”Jenkins is fully up and running”就代表Jenkins启动成功了。友情提示,启动Jenkins的这个Dos界面不能关闭,否则Jenkins服务就会关闭。

然后在浏览器输入127.0.0.1:8889进入Jenkins界面


接着点击【Manage Jenkins】->【Manage Plugins】中安装Git和Qy Wechat Notification这两个插件。Git插件的作用,顾名思义就是用于拉Gitlab仓库的代码,Qy Wechat Notification插件的作用是将执行后的测试结果信息推送到企业微信群中。安装好这两个插件之后,我们需要重启一下Jenkins服务,最简单的方法就是将启动Jenkins服务的Dos页面关闭,重新按照启动Jenkins的方法重启一次。

然后再点击【Manage Jenkins】->【Manage Credentials】配置全局密钥。


点击【添加凭据】


然后填写凭据的各个参数信息。


这样我们的Git凭据就设置完成了,接下来是创建Jenkins执行的Job。点击首页的【新建Item】选择【构建一个多配置项目】,任务名称根据自己的需求填写即可。

接下来设置git地址:

接着配置触发器:

接着我们配置python脚本的运行设置。

运行python脚本的命令为python XX.py文件,我们的python脚本执行文件名为runner.py,所以我们这边填写为python runner.py

最后我们需要配置一下脚本运行后推送到企业微信的设置。这边我们需要配置一个Webhook地址,这个Webhook地址其实就是企业微信群中的机器人的地址,在创建机器人时会生成这个Webhook地址,我们将机器人的Webhook地址填写进来即可。



Job配置完成之后,点击【Build Now】运行Job。我们可以发现Job构建成功了。

然后查看Jenkins构建Job时推送到企业微信群的信息:



就此Jenkins自动化部署就完成了。

相关推荐

安全教育登录入口平台(安全教育登录入口平台官网)

122交通安全教育怎么登录:122交通网的注册方法是首先登录网址http://www.122.cn/,接着打开网页后,点击右上角的“个人登录”;其次进入邮箱注册,然后进入到注册页面,输入相关信息即可完...

大鱼吃小鱼经典版(大鱼吃小鱼经典版(经典版)官方版)

大鱼吃小鱼小鱼吃虾是于谦跟郭麒麟的《我的棒儿呢?》郭德纲说于思洋郭麒麟作诗的相声,最后郭麒麟做了一首,师傅躺在师母身上大鱼吃小鱼小鱼吃虾虾吃水水落石出师傅压师娘师娘压床床压地地动山摇。...

谷歌地球下载高清卫星地图(谷歌地球地图下载器)
  • 谷歌地球下载高清卫星地图(谷歌地球地图下载器)
  • 谷歌地球下载高清卫星地图(谷歌地球地图下载器)
  • 谷歌地球下载高清卫星地图(谷歌地球地图下载器)
  • 谷歌地球下载高清卫星地图(谷歌地球地图下载器)
哪个软件可以免费pdf转ppt(免费的pdf转ppt软件哪个好)
哪个软件可以免费pdf转ppt(免费的pdf转ppt软件哪个好)

要想将ppt免费转换为pdf的话,我们建议大家可以下一个那个wps,如果你是会员的话,可以注册为会员,这样的话,在wps里面的话,就可以免费将ppt呢转换为pdfpdf之后呢,我们就可以直接使用,不需要去直接不需要去另外保存,为什么格式转...

2026-02-04 09:03 off999

电信宽带测速官网入口(电信宽带测速官网入口app)

这个网站看看http://www.swok.cn/pcindex.jsp1.登录中国电信网上营业厅,宽带光纤,贴心服务,宽带测速2.下载第三方软件,如360等。进行在线测速进行宽带测速时,尽...

植物大战僵尸95版手机下载(植物大战僵尸95 版下载)

1可以在应用商店或者游戏平台上下载植物大战僵尸95版手机游戏。2下载教程:打开应用商店或者游戏平台,搜索“植物大战僵尸95版”,找到游戏后点击下载按钮,等待下载完成即可安装并开始游戏。3注意:确...

免费下载ppt成品的网站(ppt成品免费下载的网站有哪些)

1、Chuangkit(chuangkit.com)直达地址:chuangkit.com2、Woodo幻灯片(woodo.cn)直达链接:woodo.cn3、OfficePlus(officeplu...

2025世界杯赛程表(2025世界杯在哪个国家)

2022年卡塔尔世界杯赛程公布,全部比赛在卡塔尔境内8座球场举行,2022年,决赛阶段球队全部确定。揭幕战于当地时间11月20日19时进行,由东道主卡塔尔对阵厄瓜多尔,决赛于当地时间12月18日...

下载搜狐视频电视剧(搜狐电视剧下载安装)

搜狐视频APP下载好的视频想要导出到手机相册里方法如下1、打开手机搜狐视频软件,进入搜狐视频后我们点击右上角的“查找”,找到自已喜欢的视频。2、在“浏览器页面搜索”窗口中,输入要下载的视频的名称,然后...

pubg免费下载入口(pubg下载入口官方正版)
  • pubg免费下载入口(pubg下载入口官方正版)
  • pubg免费下载入口(pubg下载入口官方正版)
  • pubg免费下载入口(pubg下载入口官方正版)
  • pubg免费下载入口(pubg下载入口官方正版)
永久免费听歌网站(丫丫音乐网)

可以到《我爱音乐网》《好听音乐网》《一听音乐网》《YYMP3音乐网》还可以到《九天音乐网》永久免费听歌软件有酷狗音乐和天猫精灵,以前要跳舞经常要下载舞曲,我从QQ上找不到舞曲下载就从酷狗音乐上找,大多...

音乐格式转换mp3软件(音乐格式转换器免费版)

有两种方法:方法一在手机上操作:1、进入手机中的文件管理。2、在其中选择“音乐”,将显示出手机中的全部音乐。3、点击“全选”,选中所有音乐文件。4、点击屏幕右下方的省略号图标,在弹出菜单中选择“...

电子书txt下载(免费的最全的小说阅读器)

1.Z-library里面收录了近千万本电子书籍,需求量大。2.苦瓜书盘没有广告,不需要账号注册,使用起来非常简单,直接搜索预览下载即可。3.鸠摩搜书整体风格简洁清晰,书籍资源丰富。4.亚马逊图书书籍...

最好免费观看高清电影(播放免费的最好看的电影)

在目前的网上选择中,IMDb(互联网电影数据库)被认为是最全的电影网站之一。这个网站提供了各种类型的电影和电视节目的海量信息,包括剧情介绍、演员表、评价、评论等。其还提供了有关电影制作背后的详细信息,...

孤单枪手2简体中文版(孤单枪手2简体中文版官方下载)

要将《孤胆枪手2》游戏的征兵秘籍切换为中文,您可以按照以下步骤进行操作:首先,打开游戏设置选项,通常可以在游戏主菜单或游戏内部找到。然后,寻找语言选项或界面选项,点击进入。在语言选项中,选择中文作为游...

取消回复欢迎 发表评论: