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

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

off999 2024-09-18 22:38 50 浏览 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自动化部署就完成了。

相关推荐

虚拟机安装win7镜像(虚拟机安装win7镜像软件)

下载VMware虚拟机win7映像文件,您可以选择官方或授权的渠道进行操作。首先,您需要确认需要下载的虚拟机镜像的操作系统和版本。通常,官方提供了一些预定义的虚拟机镜像,如Windows7等。一种可...

cpu温度过高会怎样(cpu温度过高会造成什么影响)

CPU温度过高会导致一系列问题,包括但不限于以下几个方面:1.电脑运行不稳定:CPU温度过高会导致电脑运行不稳定,程序崩溃、电脑反应缓慢等问题。2.电脑硬件损坏:CPU温度过高容易导致电脑硬件损坏...

win7进安全模式(win7进安全模式卡死)

1、重启或开机时,在进入Windows系统启动画面之前按下F8键,会出现系统多操作启动菜单,有三个版本的安全模式可以选择,回车就直接进入安全模式。2、重启电脑时,按住Ctrl键不放,会出现系统多操作启...

360手机助手下载的软件在哪里

在手机中打开安装好的360手机应用助手然后在360手机应用助手界面的右下角,选择“更多”,然后在这里再进入“设置”进入设置后,再选择“应用安装位置”设置最后我们选择SD卡即可根据以上步骤,就可以修改下...

组策略管理器怎么打开(组策略管理器怎么打开控制面板)

1.找不到2.本地组策略管理器可能找不到是因为它可能被禁用或者被删除了。另外,也有可能是因为你的操作系统版本不支持本地组策略管理器。3.如果你的操作系统版本不支持本地组策略管理器,你可以尝试使用...

电源已接通未充电什么意思(电源已接通但未充电怎么办)

原因分析:出现这样的原因有可能是长时间没有充电,导致电池的内部电量耗完后亏电严重,只是电脑充电的保护,不让过充而已,只要设置一下电池选项一般就可以解决问题了。解决方法:1、关机,拔下电源,拔出电池,...

路由器怎么桥接另外一个路由器

桥接分有线桥接和无线桥接,有线桥接就是两台路由器lan口通过网线相连,实现路由器的扩展;无线桥接是将后一台路由器工作模式设置为中继模式,在中继模式设置中选择前一台路由的WiFi信号,输入对应的密码,就...

系统重装软件下载(重装系统安装版)
  • 系统重装软件下载(重装系统安装版)
  • 系统重装软件下载(重装系统安装版)
  • 系统重装软件下载(重装系统安装版)
  • 系统重装软件下载(重装系统安装版)
手机qq空间怎么注销掉(手机qq空间咋样注销)
  • 手机qq空间怎么注销掉(手机qq空间咋样注销)
  • 手机qq空间怎么注销掉(手机qq空间咋样注销)
  • 手机qq空间怎么注销掉(手机qq空间咋样注销)
  • 手机qq空间怎么注销掉(手机qq空间咋样注销)
电脑开机进入桌面就蓝屏(电脑开机进去桌面就蓝屏)

步骤1、如果发现开机蓝屏时,可能以通过开机第一屏时迅速不停按动F8键,在屏幕出来的界面选择[安全模式]并按[Enter]进入安全模式。【电脑一开机就蓝屏】步骤1  步骤2、如果能进安全模式,说明软件有...

惠普打印机程序驱动官网(中国惠普打印机驱动程序)
惠普打印机程序驱动官网(中国惠普打印机驱动程序)

hp打印机驱动程序可以去惠普官网下载,然后安装驱动程序1/6登陆www.hp.com.cn,点击右上角的“支持”,选择“软件与驱动程序”2/6点击左侧“按产品类别浏览”中的“打印机”3/6输入要查询的产品编号4/6点击左侧搜索结...

2025-12-30 14:03 off999

一键装机之家官网(一键装机软件哪个好用)

http://www.xitongzhijia.net/系统之家官网打造的系统之家装机大师,使用很简单,可以用U盘装系统,也可以一键重装系统,可以帮助你快速升级到你想要升级的系统。系统之家装机大师是一...

显示桌面图标不见了怎么恢复

1、在电脑桌面上,点击鼠标右键。2、在右键菜单中,点击“查看”。3、在“查看”的下一级菜单中,点击“显示桌面图标”,即可显示出桌面图标。4、用鼠标右键点击任务栏。5、在右键菜单中,点击“任务管理器”。...

芯片排行(麒麟芯片排行)

2021世界十大芯片公司排名1.英特尔成立于1968年,一直都处于领先地位,是最著名的计算机和中央处理器创造商。2.三星成立于1938年,三星涉及了许多领域,比如手机、电脑和各种电子半导体领域。3.英...

win7系统进入桌面黑屏(win7进去界面后黑屏)

win7黑屏无法进入桌面的解决方法:1、按【ctrl+alt+del】组合键,打开任务管理器;2、依次点击文件、创建新任务,输入regedit;3、在打开的注册表编辑器中,找到shell选项,更改数值...

取消回复欢迎 发表评论: