|
本帖最后由 Shaw0xyz 于 2024-7-13 16:17 编辑
1. 引言
UI自动化测试是保证Web应用程序质量的重要手段。本文将介绍如何使用Pytest和Selenium进行UI自动化测试,通过一个实战实例,展示从环境配置到编写和运行测试用例的完整过程。
1.1 Pytest简介
Pytest是一个功能强大且灵活的Python测试框架,支持简单的单元测试到复杂的功能测试。它具有易用的语法、丰富的插件和强大的扩展性,非常适合与Selenium结合进行UI自动化测试。
1.2 Selenium简介
Selenium是一个流行的Web自动化测试工具,支持多种浏览器和操作系统。它允许使用不同的编程语言(如java、Python、C#)编写测试脚本,自动执行浏览器操作,模拟用户行为。
2. 环境配置
2.1 安装Python
确保系统中已安装Python。可以通过以下命令检查Python版本:
如果未安装Python,可以从Python官方网站下载并安装最新版本。
2.2 安装Selenium
使用pip安装Selenium库:
2.3 安装Pytest
使用pip安装Pytest框架:
2.4 配置WebDriver
下载与目标浏览器对应的WebDriver,并将其路径添加到系统环境变量中。例如,若使用Chrome浏览器,则需要下载ChromeDriver。
3. 编写测试用例
3.1 创建测试文件
在项目目录中创建一个名为`test_example.py`的文件,作为我们的测试文件。
3.2 导入必要的库
在测试文件中,导入Selenium和Pytest库:
- import pytest
- from selenium import webdriver
- from selenium.webdriver.common.by import By
复制代码
3.3 编写测试函数
编写一个简单的测试函数,用于打开Google主页并验证标题:
- def test_google_title():
- driver = webdriver.Chrome()
- driver.get("https://www.google.com")
- assert "Google" in driver.title
- driver.quit()
复制代码
4. 运行测试
使用以下命令运行测试用例:
Pytest将自动发现并执行测试函数,并输出测试结果。
5. 实战实例
5.1 测试百度搜索功能
假设我们要测试百度的搜索功能,编写以下测试用例:
- import pytest
- from selenium import webdriver
- from selenium.webdriver.common.by import By
- from selenium.webdriver.common.keys import Keys
- def test_baidu_search():
- driver = webdriver.Chrome()
- driver.get("https://www.baidu.com")
- search_box = driver.find_element(By.NAME, "wd")
- search_box.send_keys("pytest selenium")
- search_box.send_keys(Keys.RETURN)
- assert "pytest selenium" in driver.page_source
- driver.quit()
复制代码
5.2 添加更多断言
在实际测试中,可以添加更多断言来验证页面元素和行为:
- def test_baidu_search():
- driver = webdriver.Chrome()
- driver.get("https://www.baidu.com")
- search_box = driver.find_element(By.NAME, "wd")
- search_box.send_keys("pytest selenium")
- search_box.send_keys(Keys.RETURN)
- assert "pytest selenium" in driver.page_source
- assert "百度一下,你就知道" in driver.page_source
- results = driver.find_elements(By.CSS_SELECTOR, "h3.t")
- assert len(results) > 0
- driver.quit()
复制代码
5.3 使用Pytest Fixture
使用Pytest Fixture可以简化测试用例中的重复代码,例如浏览器的启动和关闭:
- @pytest.fixture
- def driver():
- driver = webdriver.Chrome()
- yield driver
- driver.quit()
- def test_baidu_search(driver):
- driver.get("https://www.baidu.com")
- search_box = driver.find_element(By.NAME, "wd")
- search_box.send_keys("pytest selenium")
- search_box.send_keys(Keys.RETURN)
- assert "pytest selenium" in driver.page_source
- assert "百度一下,你就知道" in driver.page_source
- results = driver.find_elements(By.CSS_SELECTOR, "h3.t")
- assert len(results) > 0
复制代码
6. 总结
本文介绍了如何使用Pytest和Selenium进行UI自动化测试,从环境配置到编写和运行测试用例,展示了一个完整的实战实例。通过这种方式,开发者可以高效地进行Web应用程序的自动化测试,确保其在不同浏览器和操作系统上的稳定性和一致性。希望本文能为您在实际项目中提供有用的参考。
/ 荔枝学姐de课后专栏 /
Hi!这里是荔枝学姐~
欢迎来到我的课后专栏
自然语言学渣 NLP摆烂姐
热衷于技术写作 IT边角料
AIGC & Coding & linux ...
~互撩~ TG: @Shaw_0xyz
|
|