🍅 视频学习:文末有免费的配套视频可观看
🍅?点击文末小卡片,免费获取软件测试全套资料,资料在手,涨薪更快
什么是python自动化?我理解的Python自动化测试就是把以前人为测试转化为机器测试的一种过程。自动化测试是一种比手工测试更快获得故障反馈的方法。
自动化测试是一种质量保障的方式,最重要的还是以做好一款高质量产品为前提。测试工作很多时候就是在不断平衡质量、效率、驱动业务这三者之间的比例和深度。根据不同的业务阶段、不同的目标、当前的关键事件驱动,在质量、效率、驱动业务上不断地调整策略和战术。
在python自动化测试人员完成项目的自动化测试工作之后,需要将自动化测试报告结果发送给对应的负责人查看。如果每次执行完自动化测试之后都需要测试人员手动将测试报告转发给负责人,如果在转交的过程中发生点突发事件,测试人员忘记要将测试报告转发给负责人,负责人就会迟迟收不到想要的工作内容,这样的效率对于从事软件行业的人们来说效率是很低的。因此由生出python自动化邮件推送这个功能。
邮件传输一般是通过SMTP协议,SMTP协议是一组由源地址到目的地址传输邮件的规则。在python中通过smtplib模块对SMTP协议进行简单的封装,实现了方便的途径来发送邮件,通过SMTP的sendmail方法来发送邮件。这是一种比较通用的邮件传输方法,不过本次我给大家介绍的是unittestreport包中封装的一个邮件推送方法。这个邮件推送方法相对于传统的方法来说,更加的简洁、易懂,适用于使用unittest测试框架的脚本。通过使用python自动化邮件推送功能,就能在自动化测试结果生成之后自动邮件发送到对应负责人的邮箱之中,提高了工作效率。
什么是企业微信推送呢?企业微信推送就是自动化测试人员在进行完自动化测试工作之后将测试结果信息推送到自己工作所在的企业微信测试群中,让相关人员看到项目自动化测试的执行情况,这也是一种及时将自动化测试结果共享的一种方法。
什么是Jenkins呢?Jenkins是一个开源软件项目,是基于Java开发的一种持续集成工具,用于监控持续重复的工作,旨在提供一个开放易用的软件平台,使软件的持续集成变成可能。
那什么是Jenkins自动化部署呢?由于自动化测试工作的特性就是在每次版本迭代时对系统功能进行自动化测试,从而找出系统在版本迭代过程汇中可能出现的问题,这种工作具有很强的重复性。如果每次版本迭代都需要测试人员手动执行自动化脚本,对于从事软件行业工作的我们来说并不是一件很酷的事情,而且还很繁琐。由于Jenkins的作用就是用于监控持续重复的工作,所以我们将完成后的自动化测试脚本部署到Jenkins上,并设置好相应的定时器,Jenkins就能按照规定好的程序、时间来自动执行我们的自动化测试脚本,从而提高测试人员的工作效率。
本次介绍的是基于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元素定位来实现登录自动化,后面的增删改查环境代码编写也是如此,在这就不一一赘述。
SaaS后台管理的自动化脚本编写完成之后,我们需要编写一个执行此脚本的运行文件,该文件我们称之为runner文件。因为我们是基于unittest框架编写的自动化脚本,为了便捷并生成界面好看的自动化测试报告,我们在这里选用了unittestreport这个数据包,这里面封装了多个好看的测试报告模板功测试人员选择。
为了辨别生成的测试报告的版本,我们通过time.strftime()方法来给测试报告添加时间戳。然后定义个suite套件用于临时存储我们所有的测试场景脚本。那我们该如何获取之前写的那些场景脚本呢?一种方法是将之前写好的场景脚本的py文件通过import导入到当前文件中来,不过这种办法比较笨重,如果py文件很多的话,我们的工作效率就会变得很低下。所以在这我们介绍另外一种方法,就是通过
unittest.defaultTestLoader.discover()方法读取我们文件所在的位置。如果脚本是在本地运行,我们可以导入脚本的绝对路径,但是如果我们要求脚本在别的环境中也能运行,那就不能读取脚本的绝对路径了,而是改为相对路径。因为我们后面还需要将脚本部署到gitlab中,所以在此我们写的就是读取脚本的相对路径。
怎么生成好看的自动化测试报告呢?接下来我们就要用到unittestreport中的TestRunner()方法了。unittestreport将python中的TestRunner()方法进行了重新编写并封装,我们只需要调用其的TestRunner()即可使用。TestRunner()中的各个参数解释在代码中都有注释,在此就不一一赘述。
模板参数填写完之后,通过使用runner.run()调用run方法执行当前脚本就可以生成我们需要的自动化测试报告了。
最后祝大家都能找到心仪的工作,快乐工作,幸福生活,广阔天地,大有作为。我也整理了一波之前发布的软件测试文档【点击文末小卡片免费领取】,无套路领取!
整份文档一共有208 页,全部为大家展示出来肯定是不太现实的,为了不影响大家的阅读体验就只展示了部分内容,还望大家海涵,希望能帮助到您面试前的复习且找到一个好的工作,也节省大家在网上搜索资料的时间来学习!
同时,在这我为大家准备了一份软件测试视频教程(含面试、接口、自动化、性能测试等),就在下方,需要的可以直接去观看,也可以直接【点击文末小卡片免费领取资料文档】
软件测试视频教程观看处:
【2024最新版】Python自动化测试15天从入门到精通,10个项目实战,允许白嫖。。。