还在手动测试?那是那还不知道Python自动化测试的强大之处

news2025/4/6 7:17:03

目录:导读

引言

1.关于自动化测试的概述

2.Selenium元素定位实战

写在最后


引言

Python自动化测试是当今广泛使用的自动化测试技术之一。它的简单易学、开放源代码和丰富的第三方库使得其成为程序员和测试人员的首选工具之一。

Python自动化测试不仅可以帮助我们节省时间和精力,还可以降低测试成本和风险,同时也可以提高软件产品的质量和稳定性。

当前最新消息表明,软件行业对于自动化测试技能的需求正在不断增加。越来越多的公司开始采用自动化测试技术来提高测试效率和质量,因此掌握Python自动化测试技术将成为一项非常有价值的能力,并为你在职场上带来更多的机会和优势。

因此,如果你想把自己的测试工作提升到一个新的水平,请跟随我们的指引,学习Python自动化测试技术,并使用它来提高你的软件测试效率和质量!

1.关于自动化测试的概述

研发效能

可以通过技术的手段来提高效率

自动化测试分类

1.1UI自动化测试(前端自动化测试)-->selenium(框架&库&工具)

1.2API自动化测试

1.3单元自动化测试

服务端测试开发领域(架构)

大数据测试开发领域

算法测试开发领域(离散数学:线性代数)

专项测试开发领域

功能测试-->自动化测试-->测试开发(前端&架构&容器化)-->回归功能测试本质

测试开发=测试思维+开发的技术+质量管理体系

自动化测试:可以理解为通过一定的技术手段,操作机器来得到人的模拟操作

目的&意义:随着产品的完善,需要回归验证的测试点越来越多,这个时候我们可以

通过自动化测试的手段,把需要回归的测试点钟,可以使用自动化测试实现的部分实现

那么这样我们需要回归测试的点就会减少,已实现部分可以一劳永逸的执行。

环境搭建步骤:

1、安装selenium的地方放的库 pip3 install selennium

2、按照chrome的浏览器

3、下载浏览器对应的驱动

支持主流的编程语言:python ,java,go,net,php,js

支持主流的浏览器:chrome fireofox ie

2.Selenium元素定位实战

Selenium是一个用于Web应用程序的自动化测试工具,它可以直接运行在浏览器中,可以模拟用户的行为操作,操作界面友好。且支持IE Chrome Firefox 等主流浏览器

2.1元素定位实战

在UI自动化测试中,最基础最核心的技能是对页面元素进行定位,定位到相应的元素后才可以对页面的操作进行编码验证

2.2调试工具实战

在Chrome浏览器中,点击鼠标右键,在弹出的快捷菜单中选择“检查”选项:在弹出的调试 窗口中,点击

按钮后,将鼠标移动到需要定位的目标未知,调试信息窗口就会显示元素的属性

举例:

 然后我们在进行查找元素

 我们就能获取元素

前提是在写代码的时候需要导入 

from selenium import webdriver

2.3利用id查找元素:find_element_by_id

通过元素id定位到元素 以百度的方式来呈现

 可以看到百度当中 id的属性是kw

我们在百度搜索框中输入“美女”

代码如下

 View Code

2.4利用name查找元素:find_elemet_by_name

通过元素属性NAME定位到元素 以百度的方式来呈现

图中我们可以看到百度的name属性为wd

我们在百度搜索框中输入“美女”

用同理我们也可以找到搜索按钮的name的属性为su

执行点击

代码如下

 View Code

2.5利用class_name查找元素:find_element_by_class_name

通过元素属性CLASS_NAME定位到元素 以百度的方式呈现

 图中我们可以看到百度搜索款的class_name属性为s_ipt

我们在百度框中输入“美女”

代码如下

 View Code

2.6利用xpath查找元素:find_element_by_xpath

通过XPATH定位百度搜索输入框的元素 以百度的方式呈现

 这样我们就获取了XPath属性的元素

代码如下

 View Code

2.7利用link_text查找元素:find_element_by_link_text

LINK_TEXT是用于对超链接的处理。在HTML的代码中主要是以标签a对应 以百度的方式呈现

上图所示我们是想实现点击hao123网页,实现代码如下

 View Code

输出结果为我们进入了百度页面点击了hao123进入hao123网页

2.8利用partial_link_text查找元素:模糊匹配

partial_link_text也是用于对超链接的处理,它与link_text不同的是,它是进行模糊搜索 ,(可以理解成按照模糊关键字进行搜索)

代码如下

 View Code

2.9利用css_selector查找元素:find_element_by_css_selector

当我们使用ID,NAME等定位方法定位不到元素的时候 就可以使用css_selector来获取元素

以百度为例

代码如下

 View Code

写在最后

如果你觉得文章还不错,请大家 点赞、分享、留言 下,因为这将是我持续输出更多优质文章的最强动力!

看到这篇文章的人有觉得我的理解有误的地方,也欢迎评论和探讨~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/416532.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【LeetCode: 剑指 Offer 60. n个骰子的点数 | 数学+ 暴力递归=>记忆化搜索=>动态规划】

🍎作者简介:硕风和炜,CSDN-Java领域新星创作者🏆,保研|国家奖学金|高中学习JAVA|大学完善JAVA开发技术栈|面试刷题|面经八股文|经验分享|好用的网站工具分享💎💎💎 🍎座右…

git的操作使用三大块,常用的命令都在这里简单明了

码云网址:Gitee - 企业级 DevOps 研发效能平台 注册登录 创建仓库 仓库名称:必填,每个仓库都需要有一个名称,同一个码云账号下的仓库名称不能重复 路径:访问远程仓库时会使用到,一般无需手动指定&#xf…

C. Pinkie Pie Eats Patty-cakes(二分)

Problem - C - Codeforces 小粉饼买了一袋不同馅料的馅饼饼!但并不是所有的馅饼饼在馅料上都各不相同。换句话说,这个袋子里有一些馅料相同的馅饼。小粉派一个接一个地吃蛋糕。她喜欢玩,所以她决定不只是吃馅饼蛋糕,而是尽量不经常吃同样馅料…

Android 性能优化——ANR监控与解决

作者:Drummor 1 哪来的ANR ANR(Application Not responding):如果 Android 应用的界面线程处于阻塞状态的时间过长,会触发“应用无响应”(ANR) 错误。如果应用位于前台,系统会向用户显示一个对话框。ANR 对话框会为用户提供强制退出应用的选项…

Mybatis03学习笔记

目录 使用注解开发 设置事务自动提交 mybatis运行原理 注解CRUD lombok使用(偷懒神器,大神都不建议使用) 复杂查询环境(多对一) 复杂查询环境(一对多) 动态sql环境搭建 动态sql常用标签…

Unity Game FrameWork—模块使用—对象池分析

官方说明:提供对象缓存池的功能,避免频繁地创建和销毁各种游戏对象,提高游戏性能。除了 Game Framework 自身使用了对象池,用户还可以很方便地创建和管理自己的对象池。 下图是Demo中用到的对象池,所有的实体以及UI都使…

SpringBoot集成ChatGPT实现AI聊天

前言 ChatGPT已经组件放开了,现在都可以基于它写插件了。但是说实话我还真没想到可以用它干嘛,也许可以用它结合文字语音开发一个老人小孩需要的智能的说话陪伴啥的。 今天我就先分享下SpringBoot结合ChatGPT,先看看对话效果。 一、依…

清明-前端

明天面快手前端,正好借这个机会,做做毕设吧。顺便整理一下前端的面试内容。 何良蓉说,他觉得学的时候开心,玩的时候也开心。我觉得不开心。可能他掌握生活的秘密了吧。 如果他没对我撒谎的话。 看了眼别人的面经,就知…

一键禁用系统防火墙

你也可以通过批处理命令来实现 桌面空白地方右键选择新建记事本将下面代码复制到记事本里,然后保存为.bat类型的文件;保存完成运行即可。 Echo off Echo -------------------------------------------------------------------------- Echo 禁用系统防火…

【CSS】定位 ② ( 静态定位 | 相对定位 )

文章目录一、静态定位二、相对定位1、标准流下的盒子模型代码示例2、相对定位下的盒子模型代码示例一、静态定位 CSS 中的 静态定位 是 默认的定位方式 , 就是无定位 , 设置该定位方式 , 定位盒子不生效 ; 为盒子模型 设置 静态定位 模式 , 该 盒子模型 就会按照标准流的方式 …

【面试】spring中怎么解决循环依赖问题?

文章目录前言1、什么是循环依赖?2、Spring怎么解决循环依赖3、如何解决?4、怎么样的循环依赖无法处理?5、总结:前言 思考: 什么是循环依赖?Spring怎么解决循环依赖Spring对于循环依赖无法解决的场景 1、什么是循环依赖? 循环…

Run Loops

Run Loops 运行循环是与线程相关的基本基础结构的一部分。运行循环是事件处理循环,用于安排工作并协调传入事件的接收。运行循环的目的是在有工作要做时让线程保持忙碌,在没有工作要做时让线程休眠。 运行循环管理不是完全自动的。您仍然必须设计线程代…

【Java Web】012 -- SpringBootWeb综合案例(登录功能、登录校验、异常处理)

目录 一、登录功能 1、基础登录功能 ①、SQL语句 ②、接口参数 ③、实现思路 ④、实现步骤 2、联调Bug(没有Cookie或Session) 二、登录校验 1、登录校验的实现思路 2、会话技术 ①、会话与会话跟踪 ②、会话跟踪方案对比 Cookie Session …

C# 多线程编程

1 线程与进程 进程:进程可以理解为一块包含了某些些资源的内存区域,操作系统通过进程这一方式把他的工作划分为不同的单元。一个应用程序可以对应于多个进程。 线程:线程是进程中的独立执行单元, 对于操作系统而言,他…

【学习笔记】unity脚本学习(四)【inputManager、键盘输入、鼠标输入、Raycast】

目录输入inputManagerHorizontal虚拟轴的各个属性含义(摘选自ChatGpt,部分回答不准确)键值的含义键名称命名约定:键盘输入静态函数GetKeyGetButtonKeyCodeGetButton/Down/upGetAxisGetAxisRaw 返回由 axisName 标识的虚拟轴的值&a…

【Gradle-2】一文搞懂Gradle配置

1、前言 “Gradle的配置太多了,经常版本更新还有变化,而且它还能扩展,记是记不住了,只能用到再搜了,哎,难顶” 真的难顶,但是我想挑战一下… 本文介绍的重点: Gradle配置简介Grad…

slam与导航开发

Gmapping是一种基于激光雷达数据的地图构建算法,可以用于建立机器人的环境地图。 Gmapping算法是基于粒子滤波器(Particle Filter)的SLAM算法,它通过将机器人在环境中的位姿和地图中的特征进行联合估计,实现了机器人在…

个人使用mac OS和win OS的差异

苹果 macOS 操作系统和 Windows 操作系统在很多方面有所不同,主要体现在以下几个方面: 用户界面:macOS 和 Windows 的用户界面风格不同。macOS 推崇简洁、优雅的设计,注重操作体验;Windows 软件更为丰富,但…

Doris(1):Doris介绍

1 Doris简介 Apache Doris是一个现代化的基于MPP(大规模并行处理)技术的分析型数据库产品。简单来说,MPP是将任务并行的分散到多个服务器和节点上,在每个节点上计算完成后,将各自部分的结果汇总在一起得到最终的结果(…

最小生成树和最短路径及其他

还是学过的,主要用于复习q v q 一、最小生成树 最小生成树的定义 用于无向图中,无向图指的是没有带方向路径的图,给定n个点,m条边,如果将这些点依次相连,求出连接这些点的最小数值 应用场景 根据这个算…