webUI自动化
测试工具-selenium
核心:webdriver
测试对象-HTML
<标签 属性=“属性值” >元素内容</标签>
准备工作
准备测试库
pip install selenium
准备浏览器驱动
https://npm.taobao.org/mirrors/chromedriver/ 选择本地浏览器对应版本
解压到如下目录并添加该目录到环境变量:D:\tools\webdriver
UI自动化套路
选择元素:根据目标元素特征定位
操作元素:点击,输入,拖拽等
元素定位方式
css_selector
- 找元素的速度快,自动化测试脚本的的执行速度更快
- 浏览器对CSS的支持比xpath要好(层叠样式表是开发人员用来调整网页布局和元素样式的,浏览器的内核也叫做渲染引擎,最核心的作用就是把css翻译成可视化的界面)
- xpath比css的定位方式更灵活,css只能从上往下查询定位
xpath
基本语法://标签[@属性=“属性值”]
根据特征进行选择 //标签[@属性=“属性值”]后面可在中括号内接一个属性值或者//标签[@属性=“属性值” and @属性=“属性值”]
根据元素层级关系选择 父元素/子元素 祖先元素//后代元素 兄弟元素following-sibling preceding-sibling指定下标[n]或者[last()]
id
最简单直接的方法,但并不是所有的元素都有该属性
name
并不是所有的元素都有该属性
tag_name
同一个页面可能存在多种元素拥有相同的该属性
class_name
同一个页面可能存在多种元素拥有相同的该属性
link_text
只适用查找页面上的链接
partial_link_text
只适用查找页面上的链接
面试题:
-
元素定位方式有8种,你最喜欢哪种?
-
自动化的测试流程:
简单版本:
- 白天coding写代码,晚上下班把写好的脚本都执行起来;
- 第二天早上到公司先查看测试结果,测试结果显示在测试报告;
- 分析测试报告错误和失败的情况(失败case:指的是测试的产品可能有问题,一般断言没有通过导致的,需要手工确认再提交缺陷报告。错误case:自动化脚本编码问题,一般是代码执行报异常,需要修改脚本代码);
- 提交bug并调试脚本以后白天继续写新的测试代码
复杂版本:
- 测试报告显示在哪(测试报告,日志文件【自动化所有操作步骤都记录到日志中】,数据库【开发网站读取数据库的测试结果,统计并展示到网站中】)
- 持续集成(实时监控,不间断进行测试)
- 持续更新