python自动化+邮件推送+企业微信推送+Jenkins自动化部署

2634 篇文章 26 订阅
2447 篇文章 2 订阅

2024软件测试面试刷题,这个小程序(永久刷题),靠它快速找到工作了!(刷题APP的天花板)-CSDN博客文章浏览阅读1.3k次,点赞60次,收藏8次。你知不知道有这么一个软件测试面试的刷题小程序。里面包含了面试常问的软件测试基础题,web自动化测试、app自动化测试、接口测试、性能测试、自动化测试、安全测试及一些常问到的人力资源题目。最主要的是他还收集了像阿里、华为这样的大厂面试真题,还有互动交流板块……https://blog.csdn.net/AI_Green/article/details/134931243?spm=1001.2014.3001.5501

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.1 python 脚本

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

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

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

图片

image

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

图片

image

2.2 运行脚本

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

图片

image

为了辨别生成的测试报告的版本,我们通过 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 这两个包来编写邮件推送的方法。

图片

image

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

图片

image

图片

image

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

图片

image

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

图片

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

图片

image

2.4 企业微信推送

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

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

图片

image

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

图片

image

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

图片

image

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

图片

image

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

图片

image

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

图片

image

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

图片

image

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

图片

 

图片

image

图片

image

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

图片

image

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

图片

image

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

图片

image

2.5 Jenkins 自动化部署

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

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

图片

image

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

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

图片

image

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

图片

image

图片

image

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

图片

image

后面的操作一直选择第一个选项即可。然后就会出现我们在 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 服务就会关闭。或者 Jenkins 使用 docker 模式或者 nohup 模式运行。

图片

然后在浏览器输入 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 自动化部署就完成了。

行动吧,在路上总比一直观望的要好,未来的你肯定会感谢现在拼搏的自己!如果想学习提升找不到资料,没人答疑解惑时,请及时加入群: 786229024,里面有各种测试开发资料和技术可以一起交流哦。

最后: 下方这份完整的软件测试视频教程已经整理上传完成,需要的朋友们可以自行领取【保证100%免费】在这里插入图片描述
软件测试面试文档
我们学习必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有字节大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

  • 15
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值