用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
我们在百度搜索框中输入“美女”
代码如下

1 driver=webdriver.Chrome() 2 #导航到被测的网址 3 driver.get('http://www.baidu.com/') 4 t.sleep(5) 5 driver.find_element_by_id('kw').send_keys('美女') 6 t.sleep(5) 7 #退出 8 driver.quit()
2.4利用name查找元素:find_elemet_by_name
通过元素属性NAME定位到元素 以百度的方式来呈现
图中我们可以看到百度的name属性为wd
我们在百度搜索框中输入“美女”
用同理我们也可以找到搜索按钮的name的属性为su
执行点击
代码如下

1 from selenium import webdriver 2 driver=webdriver.Chrome() 3 #导航到被测的网址 4 driver.get('http://www.baidu.com/') 5 t.sleep(5) 6 driver.find_element_by_name('wd').send_keys('美女') 7 t.sleep(5) 8 driver.find_element_by_id('su').click() 9 t.sleep(5) 10 #退出 11 driver.quit()
2.5利用class_name查找元素:find_element_by_class_name
通过元素属性CLASS_NAME定位到元素 以百度的方式呈现
图中我们可以看到百度搜索款的class_name属性为s_ipt
我们在百度框中输入“美女”
代码如下

1 from selenium import webdriver 2 driver=webdriver.Chrome() 3 #导航到被测的网址 4 driver.get('http://www.baidu.com/') 5 t.sleep(5) 6 driver.find_element_by_class_name('s_ipt').send_keys('美女') 7 t.sleep(5) 8 driver.find_element_by_id('su').click() 9 t.sleep(5) 10 #退出 11 driver.quit()
2.6利用xpath查找元素:find_element_by_xpath
通过XPATH定位百度搜索输入框的元素 以百度的方式呈现
这样我们就获取了XPath属性的元素
代码如下

1 from selenium import webdriver 2 driver=webdriver.Chrome() 3 #导航到被测的网址 4 driver.get('http://www.baidu.com/') 5 t.sleep(5) 6 driver.find_element_by_xpath('//*[@id="kw"]').send_keys('美女') 7 t.sleep(5) 8 driver.find_element_by_xpath('//*[@id="su"]').click() 9 t.sleep(5) 10 #退出 11 driver.quit()
2.7利用link_text查找元素:find_element_by_link_text
LINK_TEXT是用于对超链接的处理。在HTML的代码中主要是以标签a对应 以百度的方式呈现
上图所示我们是想实现点击hao123网页,实现代码如下

1 from selenium import webdriver 2 driver = webdriver.Chrome() 3 #导航到被测的网址 4 driver.get('http://www.baidu.com/') 5 t.sleep(5) 6 driver.find_element_by_link_text('hao123').click() 7 t.sleep(5) 8 #退出 9 driver.quit()
输出结果为我们进入了百度页面点击了hao123进入hao123网页
2.8利用partial_link_text查找元素:模糊匹配
partial_link_text也是用于对超链接的处理,它与link_text不同的是,它是进行模糊搜索 ,(可以理解成按照模糊关键字进行搜索)
代码如下

1 from selenium import webdriver 2 driver = webdriver.Chrome() 3 #导航到被测的网址 4 driver.get('http://www.baidu.com/') 5 t.sleep(5) 6 driver.find_element_by_partial_link_text('hao').click() 7 t.sleep(5) 8 #退出 9 driver.quit()
2.9利用css_selector查找元素:find_element_by_css_selector
当我们使用ID,NAME等定位方法定位不到元素的时候 就可以使用css_selector来获取元素
以百度为例
代码如下

1 from selenium import webdriver 2 driver=webdriver.Chrome() 3 #导航到被测的网址 4 driver.get('http://www.baidu.com/') 5 t.sleep(5) 6 driver.find_element_by_css_selector('#kw').send_keys('美女') 7 t.sleep(5) 8 driver.find_element_by_css_selector('#su').click() 9 t.sleep(5) 10 #退出 11 driver.quit()
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 一个奇形怪状的面试题:Bean中的CHM要不要加volatile?
· [.NET]调用本地 Deepseek 模型
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· 没有源码,如何修改代码逻辑?
· PowerShell开发游戏 · 打蜜蜂
· 在鹅厂做java开发是什么体验
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战