软件测试所有内容笔记正在陆续更新中,笔记已经在本地记录,全部为自己手动记录的笔记及总结,正在开始更新中,后续会逐步更新并完善到
软件测试学习内容总结
专栏。
本节内容为:Web自动化测试
文章目录
1 Selenium的安装
Selenium的简介
Selenium的介绍
- 简介:Selenium 支持web浏览器的自动化。它主要由三个工具构成:WebDriver、IDE、Grid
- 官方网站:https://www.selenium.dev
WebDriver:用浏览器提供的api来控制浏览器,就像用户操作浏览器,不具有侵入性
IDE:浏览器的扩展插件,可以录制用户在浏览器中的操作
Grid:用于Selenium的分布式,可以在多个浏览器进行操作
Selenium 架构图
在客户端可以使用不同的语言对Selenium的脚本进行编写;将脚本传输给Selenium的服务器,Selenium的服务器使用浏览器驱动(driver),和浏览器进行交互。不同的浏览器使用不同的driver
Selenium 环境配置步骤
- 准备好python环境
- 准备好selenium环境
- 下载浏览器对应的driver版本
- driver配置环境变量
- 在python中import对应的依赖
Selenium的安装
前提
- 配置好python环境
- 配置好pip工具
安装
pip install selenium
- 或者在pycharm直接安装
Driver的配置
Driver的介绍
Driver的下载
- 淘宝镜像:https://npm.taobao.org/mirrors/chromedriver
- 官方网站:https://chromedriver.storage.googleapis.com/index.html
(https://sites.google.com/chromium.org/driver/downloads)
Driver的安装
- 找到和自己浏览器版本适配的driver版本
- 导入到环境变量中 https://ceshiren.com/t/topic/58
- Mac
- Windows
Python中如何使用
import selenium
from selenium import webdriver
def test_selenium():
driver = webdriver.Chrome()
driver.get("https://www.baidu.com/")
官网中内容
Driver requirements 驱动程序要求
- Adding Executables to your PATH 将可执行文件添加到您的PATH
- 创建一个目录来放置可执行文件:C:\WebDriver\bin or /opt/WebDriver/bin
- 将目录添加到您的PATH:
在Windows上-以管理员身份打开命令提示符,然后运行以下命令将目录永久添加到计算机上所有用户的路径中:
setx /m path “%path%;C:\WebDriver\bin” - 在macOS和Linux上的Bash用户-在终端中:
export PATH=$PATH:/opt/WebDriver/bin >> ~/.profile
- Chromium/Chrome
- 在Linux或macOS上,这意味着修改PATH环境变量。您可以通过执行以下命令来查看由冒号分隔的目录组成系统的路径:
echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
export PATH="$PATH:/path/to/chromedriver"
- 要实例化Chrome / Chromium会话,您可以执行以下操作:
#Simple assignment
from selenium.webdriver import Chrome
driver = Chrome()
#Or use the context manager
from selenium.webdriver import Chrome
with Chrome() as driver:
#your code inside this indent
请记住,您必须将路径设置为chromedriver可执行文件。使用以下行是可能的:
Chrome(executable_path='/path/to/chromedriver')
from selenium import webdriver
from selenium.webdriver.common.by import By
driver = webdriver.Firefox()
driver.get("http://www.google.com")
# Get search box element from webElement 'q' using Find Element
search_box = driver.find_element(By.NAME, "q")
search_box.send_keys("webdriver")
2 selenium IDE用例录制
下载、安装
SeleniumIDE的下载及安装
- 官网:https://www.selenium.dev
- Chrome插件:https://chrome.google.com/webstore/detail/selenium-ide/mooikfkahbdckldjjndioackbalphokd
- Firefox插件:https://addons.mozilla.org/en-US/firefox/addon/selenium-ide
- github release:https://github.com/SeleniumHQ/selenium-ide/releases
- 其他版本:https://addons.mozilla.org/en-GB/firefox/addon/selenium-ide/versions
- 注意:Chrome插件在国内无法下载,Firefox可以直接下载
启动IDE
- 安装完成后,通过在浏览器的菜单栏中点击它的图标来启动它。
- 如果没看到图标,首先确保是否安装了Selenium IDE扩展插件,其次,可以在下面的地址访问所有插件:
- Chrome: chrome://extensions
- Firefox: about:addons
录制第一个用例
- 创建新项目后,系统将提示为其命名
- 然后要求提供URL:要录制测试脚本的网站URL。设置一次就可以在整个项目的所有测试用例中使用
- 在页面的操作都将记录在IDE中。操作完成后,请切换到IDE窗口,并单击停止录制图标。
- 停止后,我们为刚录制的Test取名
IDE的使用
- 新建、保存、打开
- 开始和停止录制
- 运行8中的所有的实例
- 运行单个实例
- 调试模式
- 调整案例的运行速度
- 要录制的网址
- 实例列表
- 动作、目标、值
- 对单条命令的解释
- 运行日志
管理用例
- Suites:
- 当Test越来越多时,可以将多个Test归类到Suites中,Suites就像小柜子。
- 创建项目时,IDE会创建一个默认Suites,并将第一个Test添加到其中,你可以
点击Test
,在下拉菜单中选中Test suites
进入Suites管理界面: - 首先进入Suites管理界面,
点击‘+’
,提供名称,然后单击add: - 将
鼠标悬停在'suite1'
上,点击三个点弹出Suites管理菜单: - 可以对’suite1’进行管理,包括添加test,重命名,删除,设置,导出:
点击Test–选中Test suites–点击‘+’–
鼠标悬停在’suite1’
要导出测试用例,在suites上选择‘Export’–‘Python pytest’进行导出
扩展
- 代码导出:https://selenium.dev/selenium-ide/docs/en/introduction/code-export
- 常见问题:https://selenium.dev/selenium-ide/docs/en/introduction/faq
3 selenium测试用例编写
将手动用例转成脚本(依赖,元素定位)
Python Selenium
小白入门:https://selenium-python.readthedocs.io
用例的关键要素
- 导入依赖
- 创建driver
- 执行自动化步骤
- 断言
编写测试用例
- 打开页面:https://testerhome.com
- 点击 - 社团 标签
- 点击 - 霍格沃兹学院
- 访问顶部的第一个帖子
from time import sleep
from selenium import webdriver
class TestHogwarts():
def setup(self):
self.driver = webdriver.Chrome()
self.driver.maximize_window()
self.driver.implicitly_wait(5) # 隐式等待只能查找到元素,不知道元素是否是可点击的,可见的
def teardown(self):
self.driver.quit() # 不加时浏览器不会退出
def test_hogwarts(self):
self.driver.get(