全网最详细的Python自动化测试

article/2025/8/27 2:52:27

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方法执行当前脚本就可以生成我们需要的自动化测试报告了。

关于Python技术储备

学好 Python 不论是就业还是做副业赚钱都不错,但要学会 Python 还是要有一个学习规划。最后大家分享一份全套的 Python 学习资料,给那些想学习 Python 的小伙伴们一点帮助!

一、Python所有方向的学习路线

Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。在这里插入图片描述

二、Python必备开发工具

在这里插入图片描述

三、精品Python学习书籍

当我学到一定基础,有自己的理解能力的时候,会去阅读一些前辈整理的书籍或者手写的笔记资料,这些笔记详细记载了他们对一些技术点的理解,这些理解是比较独到,可以学到不一样的思路。
在这里插入图片描述

四、Python视频合集

观看零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。
在这里插入图片描述
在这里插入图片描述

五、实战案例

光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。
在这里插入图片描述

六、Python练习题

检查学习结果。
在这里插入图片描述

七、面试资料

我们学习Python必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有阿里大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。
在这里插入图片描述
在这里插入图片描述

这份完整版的Python全套学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费


http://chatgpt.dhexx.cn/article/bNEaDHLB.shtml

相关文章

python自动化

一、python回顾 1、python的发展方向 web开发 爬虫数据分析 机器学习(深度学习) 自动化运维 自动化测试 2、python测试成长 初级测试工程师 中级测试工程师 测试开发工程师 3、自动化与Python python的强大的第三方库,为很多的自动化流程提供的快捷的实现…

bootdo jar 改war 坑

最新下载bootdo pom文件中这一行请保持注释,严格按照bootdo的文档走。 请勿自由发挥!

BootDo平台数据库使用Oracle

最近协助使用开源框架,在网上到个BootDo 使用起来还是非常方便的,由于数据库原例子使用mysql,需求要后台使用成Oracle,有时看看例子还不错,真要修改成项目来使用,还有得研究,从连接数据库、acti…

BootDo:修改启动时的象形文字

一、内容介绍 BootDo是在SpringBoot基础上搭建的一个Java基础开发平台,很有学习价值,本文将介绍BootDo如何修改启动时的象形文字。 二、前置工作 1.本文bootdo下载的地址为https://gitee.com/lcg0124/bootdo,压缩包名为lcg0124-bootdo-mas…

基于 Springboot 和 Mybatis 的后台管理系统 BootDo

介绍: 项目介绍 面向学习型的开源框架,简洁高效,减少过渡封装,展现技术本质 Springboot作为基础框架,使用mybatis作为持久层框架 使用官方推荐的thymeleaf做为模板引擎,shiro作为安全框架,主流技术&…

Bootdo后台管理系统使用步骤详解

Bootdo后台管理系统使用步骤 Home1.导入项目2.创建数据库3.启动项目4.数据库新表代码生成5.jar包导出6.添加菜单 Home 面向学习型的开源框架,简洁高效,减少过渡封装,展现技术本质! 项目地址(GitHub):https://github.com/lcg0124/bootdo 项…

bootdo框架使用步骤总结

仅作为个人学习纪录,其他人只作为参考,图较少,会不断更新。创建时间 2018-04-19 项目地址 bootdo官网 因为从git上下载的文件结构并不是习惯,所以将里面一层的复制到最完成根目录idea导入,选择到项目以后&#xff0c…

登陆页面总结(bootdo)

总结自开源项目bootdo 图标设置 验证码 验证码生成工具类 import org.slf4j.Logger; import org.slf4j.LoggerFactory;import javax.imageio.ImageIO; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.…

bootdo mysql_iBootDo: 基于BootDo项目定制版,兼容MySQL、Oracle

iBootDo 项目介绍 基于BootDo项目定制版,根据个人项目经验改造:兼容MySQL、Oracle,Thymeleaf升级到3.0,默认Session存入Redis等; 感谢BootDo作者 lcg0124 的分享。 BootDo地址: https://gitee.com/lcg0124/…

bootdo框架首页解析

跳转首页 左侧大的方向上分三大块 左侧第一大块中 包含有 重复的功能 可以去掉 右侧部分控制左侧展开和收起的功能 <div class"row content-tabs"><button class"roll-nav roll-left J_tabLeft"><i class"fa fa-backward">&l…

后台管理页面(bootdo)

项目源码&#xff1a;bootdo: 面向学习型的开源框架&#xff0c;简洁高效&#xff0c;减少过渡封装&#xff0c;展现技术本质 左边的菜单栏分析 数据库结构 样式实例 用树结构封装菜单数据&#xff0c;方便获取前后节点&#xff0c;通过自身id和父id相匹配&#xff0c;构建菜…

BootDo项目

因为本地项目需要使用bootdo和springCloud结合&#xff0c;所以&#xff0c;我今天开始学习一下bootdo的知识 但是从官网下载下一个bootdo项目导入idea之后发现并不能运行起来&#xff0c;报cant found git.exe 然后需要在官网下载对应版本的git。并且在setting–git中配置一下…

BootDo:源代码打包与自启动

一、内容介绍 BootDo是在SpringBoot基础上搭建的一个Java基础开发平台&#xff0c;很有学习价值&#xff0c;本文将介绍BootDo的源代码打包与自启动。 二、前置工作 1.本文bootdo下载的地址为https://gitee.com/lcg0124/bootdo&#xff0c;压缩包名为lcg0124-bootdo-master.…

BootDO框架的使用及介绍

BootDo是一个用于微服务的高效、低包、面向学习的开源Java EE开发框架。 BootDo是一个基于SpringBoot的Java基本开发平台。MyBatis是数据访问层&#xff0c;ApacheShiro是权限授权层&#xff0c;Ehcache缓存常用数据。 BootDo主要定位在后台管理系统中学习通信。内置后端管理…

API网关设计与实现(一)

API网关使用场景API网关技术选型与应用架构 API网关使用场景 在使用微服务架构场景下&#xff0c;客户端在调用后台微服务时&#xff0c;都需要进行登陆认证、权限认证、流量控制、负载均衡、健康检查等操作&#xff0c;这些操作是调用每一个微服务都必须。因此需要将该操作交给…

API 网关实现功能

负载均衡 当网关后面挂接同一应用的多个副本时&#xff0c;每次用户的请求都会通过网关的负载均衡算法&#xff0c;路由到对应的服务上面。例如&#xff1a;随机算法&#xff0c;权重算法&#xff0c;Hash 算法等等。 如果上游服务采取微服务的架构&#xff0c;也可以和注册中…

API 网关

前言 假设你正在开发一个电商网站&#xff0c;那么这里会涉及到很多后端的微服务&#xff0c;比如会员、商品、推荐服务等等。 那么这里就会遇到一个问题&#xff0c;APP/Browser 怎么去访问这些后端的服务&#xff1f;如果业务比较简单的话&#xff0c;可以给每个业务都分配一…

API网关在API安全性中的作用

从单一应用程序切换到微服务时&#xff0c;客户端的行为不能与客户端具有该应用程序的一个入口点的行为相同。简单来说就是微服务上的某一部分功能与单独实现该应用程序时存在不同。 目前在使用微服务时&#xff0c;客户端必须处理微服务体系结构带来的所有复杂性&#xff0c;…

API网关-APISIX简介

本文分享自天翼云开发者社区《API网关-APISIX简介》&#xff0c;作者:w****n Apache APISIX 是一个动态、实时、高性能的云原生 API 网关&#xff0c;提供了负载均衡、动态上游、灰度发布、服务熔断、身份认证、可观测性等丰富的流量管理功能。APISIX 构建于nginxngx_lua的技术…