pytthon⾃动化代码⼤全
1.1 ⾃动化测试简介
⾃动化测试:
利⽤⼀些⼯具或者编程语⾔,通过录制或者编程的⽅法,设定特定的测试场景,模拟⽤户业务使⽤流程,⾃动寻缺陷
⾃动化测试优点:
1. 对程序的回归测试更⽅便,提升回归效率,节约⼈⼒。
2. 可以执⾏⼀些⼿⼯测试困难或不可能进⾏的测试。
3. 更好地利⽤资源。将繁琐的任务⾃动化,可以提⾼准确性和测试⼈员的积极性,将测试技术⼈员解脱出来,投⼊更多精⼒设计更好的测试⽤例
4. 测试具有可重复性。
5. 增加软件信任度,由于测试是⾃动执⾏的,所以不存在执⾏过程中的疏忽和错误,完全取决于测试的
设计质量。
⾃动化测试缺点:
1. 不能取代⼿⼯测试,⼯具本⾝并⽆想像⼒。
2. 对⾃动化测试⼈员要求较⾼。
3. 对被测试系统质量的依赖性极⼤,维护成本⾼。
autos4. 测试脚本本⾝也可能存在缺陷。
5. 编写的测试脚本⼯作量有时也很⼤,甚⾄会有超过⼿动测试的时间。
适合⾃动化测试的产品:
1. 软件需求变动不频繁。
2. 项⽬周期长,规划性强。
3. 回归测试任务重。
4. 项⽬进度压⼒不⼤。
⾃动化测试分类:
功能⾃动化测试
性能⾃动化测试
安全⾃动化测试
1.2 selenium简介
Selenium  实际上不是⼀个⼯具,⽽是⼀个⼯具集。
Selenium在2.0之前主要包括四个⼯具:
python基础代码大全下载
Selenium IDE(⽕狐的⼀个插件,可以快速的实现录制和回放脚本)
Selenium RC (Selenium 1.0的核⼼,实现对浏览器的控制但是有很多限制)
Selenium Webdriver (Selenium 2.0 以后的核⼼,⽤于控制浏览器)
Selenium Grid(⽀持脚本在多台机器上并⾏执⾏脚本,提升执⾏效率)
Selenium3.0版本,由以下3核⼼组件组成:
Selenium Grid
Selenium Webdriver
Selenium IDE:
IDE是嵌⼊到 Firefox 浏览器 的⼀个插件,实现了简单的录制和回放功能。为了快速的创建bug,重现脚本,在测试过程中,测试⼈员可以在发现了bug后把相应的操作步骤给录制和回放下来。便于开发⼈员快速的定位与修复bug,节省项⽬的开发周期。
Selenium Grid:
Selenium Grid是⼀种⾃动化测试辅助⼯具,利⽤Grid可以⽅便的实现在多台机器上和异构环境中运⾏测试⽤例。
Selenium Webdriver:
WebDriver⽤于操作浏览器,通过WebDriver设计的API来实现的。Webdriver是⼀套标准库,不依赖于任何测试框架,除了必要的浏览器驱动,不需要启动其他进程或安装其他程序。
1.3 selenium安装
webdriver下载地址:
Firefox:
IE:
其它驱动:
webdriver安装:将插件放⼊python安装路径下(D:\Python\Python37)(Firefox版)
1.4 辅助⼯具
选择⾃⼰想要的web测试⼯具 ,如:Web Developer、xPath Finder等点击【添加到Firefox】
⽹页开发者(Web Developer)是Mozilla Firefox浏览器上⼀个强⼤的扩展插件。它加⼊了⼏个菜单与⼀条⼯具栏以及多种⽹页开发者⼯具,上⾯集成了⼤量的⽹页开发⼯具,可以调试CSS、清理Cookie、
对表单图⽚等对象进⾏操作等。
第⼆章 WebDriver APIc++ 字符串常量
2.1 WebDriver API介绍
API(Application Programming Interface,应⽤程序编程接⼝)是⼀些预先定义的函数,⽬的是提供应⽤程序与开发⼈员基于某软件或硬件得以访问⼀组例程的能⼒,⽽⼜⽆需访问源码,或理解内部⼯作机制的细节。API 接⼝属于⼀种操作系统或程序接⼝.
分类:Windows API、linux API
基于Python的Webdriver  API是Python语⾔通过调⽤API来操作浏览器。API库针对多种语⾔实现,所以可以⽀持Python、Java、Ruby、C#等语⾔调⽤。
2.2 浏览器操作
get(url):打开指定页⾯
set_window_size(x,y)  :设置窗⼝⼤⼩
maximize_window():放⼤浏览器为全屏模式
minimize_window()  最⼩化
forward():前进
back():后退
refresh():页⾯刷新
2.3 界⾯元素操作
click() :点击界⾯元素按钮
clear() :清除元素内容
send_keys(参数1,参数2,……) :发送⽂字,参数:字符串
submit():⽤于提交表单form、信息,相当于回车操作。
mysql服务停止后不能启动2.4 元素定位
常见的元素定位⽅式:
元素的定位与操作是⾃动化测试的核⼼部分,其中操作⼜是建⽴在定位的基础上的,因此元素定位就显得⽐较重要。
⼀个元素的定位,他会有各种的特征(属性),⽐如我们可以通过⼀个⼈的⾝份证号码、姓名或者他的地址到这个⼈。那么元素也是有类似的属性的,我们可以通过这个唯⼀区别于其他元素的属性来定位这个元素。当然,除了要操作的元素需要定位,有的时候我们需要获得元素的具体text的值或者属性值时,也需要先定位元素,再进⾏进⼀步的操作。
id:find_element_by_id() #通过id来查元素
name:find_element_by_name() #通过name来查元素
class name:find_element_by_class_name() #通过类名查元素
link text:find_element_by_link_text() #通过某个超链接的⽂本字符进⾏查询
partial link text:find_element_by_partial_link_text()
xpath:find_element_by_xpath()#通过路径定位
css selector:find_element_by_css_selector()#通过选择器定位
tag name:find_element_by_tag_name())#通过标签名定位
使⽤id、name定位:id和name定位⽅式是最常见的2种定位⽅式,因为⼤多数标签都有这2种属性。
使⽤class name定位:为了弥补前端开发⼈员没有使⽤id和name属性时的情况,可以使⽤class属性来进⾏定位。
注意:class属性为复合类(即包含空格)时,可取其⼀或选择其他定位⽅式。
使⽤link text或partial link text定位:有时需要操作的元素是⼀个⽂字链接,可以通过link text或者 partial link text进⾏定位操作。
注意:定位<a>标签才能使⽤
使⽤xpath定位:
有时候⽆法查到测试对象较为完善的属性和属性值的时候,selenium提供了⼀个更为全⾯的⽅法,通过元素在被测页⾯中的位置属性来进⾏查,即xpath路径定位。
前⾯⼏种元素都⽆法定位的情况下,才使⽤xpath路径定位。xpath是某个元素的位置。
路径:是xpath识别对象的⼀种⽅式,即设置测试对象在页⾯中的路径地址,然后通过该地址进⾏元素查。
xpath 是html的⼀种路径标记语⾔,⽬的是为了能标记并快速定位⽂件中的某个元素(标签)。
xpath的常⽤语法:
通过绝对路径定位元素(不推荐使⽤): find_element_by_xpath("/html/body/div/form/input");
通过相对路径定位元素:
find_element_by_xpath("//div/input");#选取所有的div下⾯的input
使⽤索引定位元素:
find_elements_by_xpath("//input[4]"); #全页⾯查,查这个页⾯上所有的第4个input
find_elements_by_xpath("//input")[3]; #全页⾯查所有的input,取第4个input
(find_elements_by_xpath 定位⼀组元素,返回列表)
xpath的常⽤语法:
使⽤xpath及属性值定位元素:
语法:xpath = "//标签名[@属性='属性值']"
find_element_by_xpath("//input[@id='kw']"); # 全⽂查id = kw的这个input标签
部分属性值匹配:
find_elements_by_xpath("//*[contains(@href, 'news.baidu')]")匹配包含属性的值 #全⽂查所有标签,href属性包含news.baidu的标签
find_elements_by_xpath("//*[starts-with(@href,'https')]")匹配开始字段,ends-with⽅法不可⽤ #全⽂查所有标签,href属性以https开头的标签
Xpath定位⽅式的缺点:
由于xpath需要遍历页⾯,所以定位元素的性能要⽐其它的⽅式差
不够健壮,xpath会随着页⾯元素的改变⽽改变
兼容性不好,在不同的浏览器下对xpath的实现不⼀样
CSS”表⽰该属性是在哪个CSS版本中定义的
使⽤css定位:相较于xpath,使⽤css选择器定位写法更简洁。
.名字  类选择器 class
# id 选择器
全部
前3后1
[attribute|=value] 选择器⽤于选取属性值以指定值开头的元素。
注释:value 该值必须是整个单词,⽐如 lang="en",或者后⾯跟着连字符,⽐如 lang="en-us"。 lang="en us" 取不到
^=    ⼦串
$=    ⼦串
*=    ⼦串
blurred是什么意思|=      单词(只能以 - 为分隔符,单独只有en)
~=    单词(只能以空格为分隔符)
前3后1
5~7  最后2个
^=    ⼦串
$=    ⼦串matlab画2个图像
*=    ⼦串
|=      单词(只能以 - 为分隔符)
~=    单词(只能以空格为分隔符)
2.5 获取界⾯元素内容
size:获取元素的尺⼨
text:获取元素的⽂本
title:获取页⾯标题
current_url:获取当前url地址
get_attribute:获取元素属性值
2.6 键盘
操作键盘使⽤from selenium.webdrivermon.keys import Keys的Keys类,⼀般send_keys函数联⽤,常见的⽅法:send_keys(Keys.BACK_SPACE) 删除键(BackSpace)
send_keys(Keys.SPACE) 空格键(Space)
send_keys(Keys.TAB) 制表键(Tab)
send_keys(Keys.ESCAPE) 回退键(Esc)
send_keys(Keys.ENTER) 回车键(Enter)
send_keys(Keys.CONTROL,'a') 全选(Ctrl+A)
send_keys(Keys.CONTROL,'c') 复制(Ctrl+C)
send_keys(Keys.CONTROL,'x') 剪切(Ctrl+X)
send_keys(Keys.CONTROL,'v') 粘贴(Ctrl+V)
2.7 ⿏标
常见⿏标操作包含在 selenium.webdrivermon.action_chains的ActionChains 类中,常⽤的⽅法:
context_click() 右击

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。