利用测试自动化工具,更轻松地编写测试套件,减轻人为干预并提高测试ROI回报率。
业务关键测试用例,重复测试用例,功能测试用例
web自动化测试工具 :
QTP一个商业化的功能测试工具,收费,支持web,桌面自动化测试。
selenium 是一个开源的web自动化测试工具,免费,主要做功能测试。
开源软件,开源与免费的区别
跨平台,linux,Windows,mac,有不同的安装包,或者编好的脚本在任何一种系统都可以使用;
支持多浏览器
支持多种语言:与后台开发的语言类型没有关系;
selenium2.0和selenium3.0的区别;
驱动的含义:引导操作系统识别硬件;
API
框架设计:编写脚本,通过直接运行代码或调用应用程序的API或用户界面来自动运行测试
1、什么是web自动化测试?让程序或者工具代替人为对web程序进行的验证过程.
2、优点:提高效率,减少人为错误,可重复运行
3、误区:自动化测试一定比手工厉害,能发现更多bug,完全替代手工测试,所有功能都能进行自动化;
4、什么项目适合自动化?项目周期长,项目需求变化不频繁,需要回归测试的都需要自动化(银行/部队项目?????)
补:dos命令默认搜索顺序:
1.检测是否为内部命令;
2.检测是否为当前目录下可执行文件
3.检测path环境变量指定的目录;
提示:如果以上搜索目录都检测不到命令或可执行文件,系统会抛出不是内部或外部命令;在web环境中,如果不将浏览器驱动添加到path中,selenium在运行的时候会提示浏览器驱动有误;
二、环境搭建
1、安装python解释器以及可视化工具 #pip install selenium
2、安装浏览器(谷歌/火狐)
3、安装浏览器驱动
浏览器以及驱动的安装,注意浏览器驱动必须和浏览器版本对应;
chrome安装驱动:参考:Selenium 启动firefox浏览器 上报selenium.common.exceptions.WebDriverException: Message: 'geckodriver' executable needs to be in PATH.。 - GalaxyStar - 博客园
火狐驱动下载地址:https://github.com/mozilla/geckodriver/releases,放入python.exe对应的目录下;环境变量添加firefox.exe所在路径;
谷歌驱动下载地址:打开http://chromedriver.storage.googleapis.com/index.html,选择对应版本进行下载,放入python.exe对应的目录下;环境变量添加chrome.exe所在路径;
三、元素定位方式:
8种:
基于元素属性:id,name,classs_name
基于标签名称:tag_name
基于文本及连接:link_text,partial_link_text
基于元素路径:xpath
基于选择器:css
id定位通过元素的id属性来定位,方法:driver.find.element_by_id(id),元素必须要有id属性,一般是唯一标识符;
name定位通过元素的name属性来定位,方法:driver.find.element_by_name(name),元素必须要有name属性,可以重名(部分设置同等大小文本框);
class_name定位通过元素的class属性来定位,方法driver.find.element_by_class_name(class),元素必须要有class属性,多个命名,任意一个命名都可以(找字体,找颜色);(html语言)
尖括号后面的就是标签名,a标签代表超链接,还有其他标签如span,div,input……,当标签名是input,type='submit'或者type='text',它就是按钮。
tag_name定位通过标签名来定位,方法:driver.find.element_by_tag_name(tag_name),html本质就是由不同的tag组成,每一种标签一般会存在多个,如果存在多个相同标签,则返回符合条件的第一个标签,如何定位第二个元素???
link_text定位专门用来定位超链接元素(<a>标签</a>),并且通过文本内容匹配元素。方法:driver.find.element_by_link_text( ),是精准匹配。
partial_link_text同上,方法:driver.find.element_by_partial_link_text( ).click( ),可以精准或者模糊匹配。作用:进行点击进入页面
XML:一种标记语言,嵌套结构,用于数据的存储和传递
HTML:显示数据
CSS:显示文本或者元素样式
单元测试:声明格式,根节点,注意格式;
Xpath定位:xml path,定位策略:1.路径2.路径结合属性3.路径结合逻辑4.路径结合层级
方法:driver.find.element_by_xpath( ),绝对路径:从最外层元素到指定元素的所有路径,以单斜杠/开头,相对路径以//开头,后跟元素名称。
绝对路径:
相对路径:如果要跟元素的属性值必须加上中括号和@符号
xpath延申:
第一个一般适合p标签,a标签;attrubute指的是元素名,XXX指的是属性值;
定位一组列表:
方法:driver.find.elements_by_partial_link_text( ).click( ),
返回结果:类型为列表,要对列表进行访问和操作必须指定下标或进行遍历。【下标从0开始】
css, 用来描述HTML样式,选择器,在css语言中用css选择器来定位元素;
方法:
driver.find_element_by_css_selector(id/class/……)
css定位常用策略:
id选择器,class选择器,元素选择器,属性选择器,层级选择器;
id选择器,格式:#id;
class选择器,格式:.class;
元素选择器:本身页面显示的文字;语法:element,如input
属性选择器:格式:[……],括号里可以是任何元素或属性;[属性名=属性值]
层级选择器:1、body>input2、body input的区别,>不能跨级,多个时加上id定位;
css扩展:
input[type^='p'] type属性以p开头的元素,例如
driver.find_element_by_css_selector('[name^='us']y').send_keys('大学')
input[type$='p'] type属性以p结束的元素
input[type*='p'] type属性包含p的元素
css实在定位不到采用xpath定位;
4、定位一组元素
5、定位元素之封装,底层实现
6、元素操作
项目:填写信息,并进行修改,修改之间点击确定按钮,进行跳转;
注:在输入方法之前一定要清空操作,否则会对内容进行追加;
7、浏览器常用方法
案例:将浏览器最大化-----设定固定大小300*200-------移动浏览器窗口位置----最大化-----填入值----点击访问某网站--执行后退
窗口位置(0,0)是左上角,往下往右是坐标值进行增大;后退操作一定是在前进操作后面;
窗口唯一标识是用itle分辨的,可以用来切换title,当页面进行切换时title会发生变化,例如可以用来检验页面是否登录成功/上一步执行操作是否成功(title/current_url/text三种方式);