文章目录
- web自动化测试
- 第一章 web自动化入门
- 1.什么是自动化?
- 1.1 优点
- 2.什么是自动化测试?
- 2.1 自动化测试能解决什么问题?
- 2.2 自动化相关知识
- 2.2.1优点
- 2.2.2 误区
- 2.3 自动化测试分类
- 3.什么是Web自动化测试?
- 3.1 什么Web项目适合做自动化测试?
- 3.2 Web自动化测试在什么时候开始?
- 3.3 Web自动化测试所属分类
- 4.Web自动化测试工具
- 1.主流的web自动化测试工具
- 第二章 Selenium-API操作
- 1.什么是Selenium?
- 1.1Selenium特点
- 1.2 环境搭建
- 1.2.1 安装Python 开发环境
- 1.2.2 安装selenium包
- 1.2.3 安装浏览器
- 1.2.4 下载浏览器驱动
- 1.2.5 配置浏览器驱动环境变量
- 1.3 科普path
- 1.4 入门案例初体验
- 1.5 谷歌浏览器安装selenium IDE 插件
- 2.元素定位
- 2.1目标
- 2.2 如何进行元素定位
- 3.元素定位方式(8种)
- 3.1 id定位
- 4.标准用例结构
web自动化测试
第一章 web自动化入门
1.什么是自动化?
由机器设备代替人工完成指定目标的过程
1.1 优点
1. 减少人工劳动力
2. 提高工作效率(批量生产)
3. 提高产品质量
4. 规格统一标准
2.什么是自动化测试?
软件测试:校验系统是否满足规定的需要,弄清预期结果和实际结果之间的差别
概念:让程序代替人工去验证系统功能的过程
2.1 自动化测试能解决什么问题?
1.解决-回归测试 [重点]:项目发布新版本之后对项目之前的功能进行验证
2.解决-压力测试:多用户同时去操作软件
3.解决-兼容性测试:不同浏览器(IE Firefox Chrome)等
4.提高测试效率,保证产品质量
2.2 自动化相关知识
2.2.1优点
1.较短的时间内运行更多的测试用例
2.自动化脚本可重复执行
3.减少人为的错误
4.克服手工测试的局限性
2.2.2 误区
1.自动化测试完全可以替代手工测试
2.自动化测试一定比手工测试厉害
3.自动化测试可以发掘更多的功能
4.自动化测试适用于所有功能
2.3 自动化测试分类
1.web-自动化测试
2.移动-自动化测试(app自动化)
3.接口-自动化测试(工具,代码)
4.单元测试-自动化测试
3.什么是Web自动化测试?
概念:让程序代替人工自动验证web项目功能的过程
3.1 什么Web项目适合做自动化测试?
1.需求变化不频繁
2.项目周期长
3.项目需要回归测试
4.需要频繁回归的场景
5.核心场景
什么是回归?1
3.2 Web自动化测试在什么时候开始?
功能测试完毕(手工测试)
3.3 Web自动化测试所属分类
1.黑盒测试(功能测试)Web自动化测试属于黑盒测试
2.白盒测试(单元测试)
3.灰盒测试(接口测试)
4.Web自动化测试工具
1.主流的web自动化测试工具
1.QTP 收费 支持 Web和桌面
2.Selenuim (免费常用)
3.Robot framework
第二章 Selenium-API操作
1.什么是Selenium?
selenium官方网站
Selenium是一个用于Web应用程序的自动化工具,中文意思是(硒)
1.1Selenium特点
1.免费开源
2.跨平台
3.支持多种浏览器
4.支持多语言
5.成熟稳定
6.功能强大
1.2 环境搭建
1.Python 开发环境
2.安装selenium包
3.安装浏览器
4.安装浏览器驱动
1.2.1 安装Python 开发环境
下载Pyhon3.10
1.2.2 安装selenium包
- 安装最新版selenium
pip install selenium
- 检查版本
pip show selenium
Name: selenium
Version: 2.48.0
Summary: Python bindings for Selenium
Home-page: https://github.com/SeleniumHQ/selenium/
Author:
Author-email:
License: UNKNOWN
Location: d:\python\lib\site-packages
Requires:
Required-by:
Name: selenium
Version: 4.8.3
Summary:
Home-page: https://www.selenium.dev
Author:
Author-email:
License: Apache 2.0
Location: d:\python\lib\site-packages
Requires: certifi, trio, trio-websocket, urllib3
Required-by:
- 卸载 selenium
pip uninstall selenium
- 安装指定版本
pip install selenium==2.48.0
1.2.3 安装浏览器
下载谷歌浏览器
1.2.4 下载浏览器驱动
下载谷歌浏览器驱动
1.2.5 配置浏览器驱动环境变量
将浏览器驱动所在位置添加到环境变量比如: D:\soft\chromedriver
1.3 科普path
dos 命令执行顺序:
1. 检测是否为内部命令
2. 检测是否为当前目录下的可执行文件
3. 检测是否是环境变量path指定的目录
1.4 入门案例初体验
# 导包 webdriver
from selenium import webdriver
from time import sleep
# 获取谷歌浏览器对象
driver = webdriver.Chrome()
# 打开百度
driver.get("http://www.baidu.com")
# 休眠3秒
sleep(3)
# 关闭浏览器
driver.quit()
- 导包
from selenium import webdriver
- 获取浏览器驱动对象
driver=webdriver.Chrome()
- 打开url
driver.get("url")
- 关闭驱动
driver.quit()
1.5 谷歌浏览器安装selenium IDE 插件
2.元素定位
2.1目标
掌握 id name class_name tag_name link_text partial_link_text等定位方式的使用
为什么要学习元素定位?
让程序操作指定元素,就必须先找到此元素。
2.2 如何进行元素定位
<input id="username" type="text" name="username" placeholder="用户名"/>
<div id="my_cart">
<span>我的购物车</span>
</div>
元素定位是通过元素的信息或元素层级结构定位元素
3.元素定位方式(8种)
Selenium提供了八种定位元素方式:
1.id
2.name
3.class_name (根据元素的class属性定位)
4.tag_name (标签名定位)
5.link_text (定位 超链接a标签)
6.partial_link_text (定位 超链接a标签 模糊)
7.XPath (基于元素路径)
8.CSS (元素选择器)
汇总:
- 基于元素属性的特有定位方式 :id name class_name
- 基于元素标签名称的定位 tag_name
- 定位超链接文本: link_text partial_link_text
- 基于元素路径定位:XPath
- 基于选择器:css
3.1 id定位
id 定位即通过元素的id来定位元素,HTML规定id属性在整个HTML文档中必须唯一
前提:元素有id属性
2.48.0版本 id定位方法
element = driver.find_element_by_id(id)
from selenium import webdriver
from time import sleep
class TestSoGou:
def test_sogou(self):
driver = webdriver.Chrome()
driver.get("https://www.sogou.com/")
driver.find_element_by_id("query").click()
driver.find_element_by_id("query").send_keys("什么是java")
driver.find_element_by_id("stb").click()
sleep(5)
driver.quit()
4.8.3版本 id定位方法
from selenium import webdriver
from time import sleep
from selenium.webdriver.common.by import By
class TestSoGou:
def test_sogou(self):
driver = webdriver.Chrome()
driver.get("https://www.sogou.com/")
driver.find_element(By.ID, "query").click()
driver.find_element(By.ID, "query").send_keys("缪宇翔是谁")
driver.find_element(By.ID, "stb").click()
sleep(5)
driver.quit()
4.标准用例结构
用例标题 | 类型 | 前提条件 | 用例步骤 | 预期结果 | 实际结果 | 后置动作 |
---|---|---|---|---|---|---|
搜狗搜索功能 | 正例 | 进入搜狗主页 | 1.输入搜索关键词 2.按下回车键 | 1.搜索成功 2.搜索结果包含关键字 | 关闭driver进程 |
项目发布新版本之后对项目之前的功能进行验证 ↩︎