用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()
View Code
复制代码

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()
View Code
复制代码

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()
View Code
复制代码

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()
View Code
复制代码

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()
View Code
复制代码

输出结果为我们进入了百度页面点击了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()
View Code
复制代码

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()
View Code
复制代码

 

posted on   钢镚芽儿哟  阅读(3404)  评论(0编辑  收藏  举报

编辑推荐:
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 一个奇形怪状的面试题:Bean中的CHM要不要加volatile?
· [.NET]调用本地 Deepseek 模型
· 一个费力不讨好的项目,让我损失了近一半的绩效!
阅读排行:
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· 没有源码,如何修改代码逻辑?
· PowerShell开发游戏 · 打蜜蜂
· 在鹅厂做java开发是什么体验
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战
< 2025年2月 >
26 27 28 29 30 31 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 1
2 3 4 5 6 7 8

导航

统计

点击右上角即可分享
微信分享提示