web自动化
自动化的优点
- 提高工作效率
- 减少人工劳动力
- 规模化,统一标准
自动化的应用场景
- 回归测试(全回归)
- 压力测试
- 兼容性测试
自动化测试的优点
- 较少的时间运行更多的测试用例
- 自动化脚本可以重复运行
- 减少人为的错误
- 克服手工测试的局限性
自动化测试的误区
- 自动化可以完全代替手工测试
- 自动化可以发掘更多的bug
- 自动化一定比手工测试厉害
- 自动化可以适用于所有的功能
自动化测试的分类
- web自动化
- 移动端自动化
- 接口自动化
- 单元测试自动化
什么样的项目适合做自动化测试
- 需求变动不频繁的
- 项目周期长的
- 项目需要做回归测试的
web自动化
- 开始时间:功能测试完毕之后
- 所属分类:黑盒测试
- 工具:selenium
selenium的特点
- 开源并且免费
- 可以在多种系统,浏览器上使用
- 支持多种语言
- 成熟稳定,功能强大
selenium的工作原理
- 由selenium中的webdrive调用对应的浏览器驱动。
- 因为webdriver和浏览器驱动的底层都是由nodejs语言写的,所以能互相调用。
- 再由浏览器驱动调用对应的浏览器,从而实现自动化。
pip工具的使用
- pip是python自带的包管理工具,可以安装、卸载、查看
- 安装
- pip install 包名 == 版本号
- 如果加了版本号,就下载指定的版本,没有加版本号,就默认下载最新的
- pip install 包名 == 版本号
- 卸载
- pip uninstall 包名
- 查看指定包详情
- pip show 包名
- 查看所有的包
- pip list
- 使用pip镜像下载
- pip install 包名 -i 镜像地址
-
pip install selenium -i http://pypi.douban.com/simple/ --trusted-host pypi.douban.com
-
- pip install 包名 -i 镜像地址
使用代码打开一个网页
# 导包
from selenium import webdriver
from time import sleep
# 创建浏览器驱动对象
driver = webdriver.Firefox()
# 打开百度页面
driver.get("http://www.baidu.com/")
# 等待三秒
sleep(3)
# 关闭
driver.quit()
元素定位
- id定位
- 使用元素的id属性进行定位
-
driver.find_element_by_id(id的属性值)
- name定位
- 使用元素的name属性进行定位
-
driver.find_element_by_name(name的属性值)
- class_name定位
- 使用元素的class属性进行定位
-
driver.find_element_by_class_name(class的属性值)
- tag_name定位
- 使用元素的标签名进行定位
-
driver.find_element_by_tag_name(标签名)
- link_text定位
- 专门用来定位超链接的
-
driver.find_element_by_link_text(超链接的全部文本内容)
- partial_link_text定位
- 也是用来定位超链接的,但可以模糊匹配
-
driver.find_element_by_partial_link_text(部分并且连续的文本内容)