获课:weiranit.fun/3299/
获取ZY↑↑方打开链接↑↑
Selenium3+Pytest+Allure 落地 Python Web 自动化测试一、技术简介
Selenium3 是用于 Web 应用程序测试的强大工具,支持多种浏览器,能模拟用户在浏览器中的操作,如点击、输入、滚动等;Pytest 是一款简洁高效的 Python 测试框架,拥有灵活的测试用例编写方式、强大的插件系统和丰富的断言方法;Allure 则专注于测试报告生成,可将测试结果以美观、直观且信息丰富的形式呈现,方便团队成员查看和分析测试情况。将这三者结合,能够构建一套完整、高效的 Python Web 自动化测试体系。
二、环境搭建(一)安装 Python
确保已安装 Python,建议使用 Python 3.6 及以上版本。可以从 Python 官方网站下载对应系统的安装包,按照安装向导完成安装,安装过程中记得勾选 “Add Python to PATH” 选项,方便后续在命令行中使用 Python 命令。
(二)安装 Selenium3
打开命令行工具(如 Windows 的命令提示符或 Linux 的终端),输入以下命令安装 Selenium3:
pip install selenium
同时,还需要下载对应浏览器的驱动程序,如 Chrome 浏览器需下载 ChromeDriver,Firefox 浏览器需下载 GeckoDriver。将驱动程序下载后,解压并将其所在路径添加到系统环境变量中,确保 Selenium 能够找到驱动来启动浏览器。
(三)安装 Pytest
在命令行中输入:
pip install pytest
安装完成后,可通过pytest --version命令检查是否安装成功。
(四)安装 Allure
Allure 的安装分两步,首先安装 Allure 命令行工具,可从 Allure 官方网站下载对应系统的安装包,解压后将其 bin 目录添加到系统环境变量。然后安装 Allure 的 Python 插件,在命令行输入:
pip install allure-pytest三、编写测试脚本(一)初始化 Selenium 驱动
在 Python 代码中,导入 Selenium 相关模块,并初始化浏览器驱动。以 Chrome 浏览器为例:
from selenium import webdriver
driver = webdriver.Chrome()
(二)编写测试用例
使用 Pytest 的语法编写测试用例,Pytest 会自动识别以test_开头的函数作为测试用例。例如,测试百度搜索功能:
def test_baidu_search():
driver.get("https://www.baidu.com")
search_box = driver.find_element_by_id("kw")
search_box.send_keys("Python自动化测试")
search_button = driver.find_element_by_id("su")
search_button.click()
assert "Python自动化测试" in driver.title
上述代码中,先打开百度首页,定位搜索框并输入关键词,点击搜索按钮,最后使用 Pytest 的断言方法验证搜索结果页面的标题是否包含输入的关键词。
(三)参数化测试
Pytest 支持参数化测试,通过pytest.mark.parametrize装饰器实现。例如,测试不同关键词的搜索:
import pytest
@pytest.mark.parametrize("keyword", ["Selenium", "Pytest", "Allure"])
def test_baidu_search_param(keyword):
driver.get("https://www.baidu.com")
search_box = driver.find_element_by_id("kw")
search_box.send_keys(keyword)
search_button = driver.find_element_by_id("su")
search_button.click()
assert keyword in driver.title
这样可以使用不同的关键词多次执行测试用例,提高测试覆盖率。
四、执行测试与生成报告(一)执行测试
在命令行中进入测试脚本所在目录,输入以下命令执行测试:
pytest
Pytest 会自动发现并执行所有测试用例,并在命令行中输出测试结果摘要。
(二)生成 Allure 报告
执行测试后,输入以下命令生成 Allure 测试报告:
pytest --alluredir=./results
allure serve./results
第一条命令将测试结果数据保存到./results目录中,第二条命令启动 Allure 服务,在浏览器中打开生成的交互式测试报告,报告中详细展示了每个测试用例的执行情况、耗时、日志等信息,方便进行问题定位和分析。
五、测试优化与扩展(一)测试夹具(Fixture)
Pytest 的 Fixture 功能可以用于设置测试前置条件和清理操作。例如,创建一个用于初始化和关闭浏览器驱动的 Fixture:
import pytest
from selenium import webdriver
@pytest.fixture(scope="module")
def driver():
driver = webdriver.Chrome()
yield driver
driver.quit()
在测试用例中,通过将driver作为参数传入,即可使用该 Fixture 提供的浏览器驱动,并且在测试模块执行完毕后自动关闭浏览器。
(二)日志记录
在测试过程中,添加日志记录有助于排查问题。可以使用 Python 内置的logging模块,在测试脚本中配置日志记录的级别、格式和输出位置,记录测试过程中的关键操作和信息。
(三)持续集成集成
将这套测试体系集成到持续集成(CI)系统中,如 Jenkins、GitLab CI/CD 等。在代码提交或合并时自动触发测试执行,并生成 Allure 报告,实现自动化的测试流程,及时发现代码变更带来的问题 。
获取ZY↑↑方打开链接↑↑
Selenium3+Pytest+Allure 落地 Python Web 自动化测试一、技术简介
Selenium3 是用于 Web 应用程序测试的强大工具,支持多种浏览器,能模拟用户在浏览器中的操作,如点击、输入、滚动等;Pytest 是一款简洁高效的 Python 测试框架,拥有灵活的测试用例编写方式、强大的插件系统和丰富的断言方法;Allure 则专注于测试报告生成,可将测试结果以美观、直观且信息丰富的形式呈现,方便团队成员查看和分析测试情况。将这三者结合,能够构建一套完整、高效的 Python Web 自动化测试体系。
二、环境搭建(一)安装 Python
确保已安装 Python,建议使用 Python 3.6 及以上版本。可以从 Python 官方网站下载对应系统的安装包,按照安装向导完成安装,安装过程中记得勾选 “Add Python to PATH” 选项,方便后续在命令行中使用 Python 命令。
(二)安装 Selenium3
打开命令行工具(如 Windows 的命令提示符或 Linux 的终端),输入以下命令安装 Selenium3:
pip install selenium
同时,还需要下载对应浏览器的驱动程序,如 Chrome 浏览器需下载 ChromeDriver,Firefox 浏览器需下载 GeckoDriver。将驱动程序下载后,解压并将其所在路径添加到系统环境变量中,确保 Selenium 能够找到驱动来启动浏览器。
(三)安装 Pytest
在命令行中输入:
pip install pytest
安装完成后,可通过pytest --version命令检查是否安装成功。
(四)安装 Allure
Allure 的安装分两步,首先安装 Allure 命令行工具,可从 Allure 官方网站下载对应系统的安装包,解压后将其 bin 目录添加到系统环境变量。然后安装 Allure 的 Python 插件,在命令行输入:
pip install allure-pytest三、编写测试脚本(一)初始化 Selenium 驱动
在 Python 代码中,导入 Selenium 相关模块,并初始化浏览器驱动。以 Chrome 浏览器为例:
from selenium import webdriver
driver = webdriver.Chrome()
(二)编写测试用例
使用 Pytest 的语法编写测试用例,Pytest 会自动识别以test_开头的函数作为测试用例。例如,测试百度搜索功能:
def test_baidu_search():
driver.get("https://www.baidu.com")
search_box = driver.find_element_by_id("kw")
search_box.send_keys("Python自动化测试")
search_button = driver.find_element_by_id("su")
search_button.click()
assert "Python自动化测试" in driver.title
上述代码中,先打开百度首页,定位搜索框并输入关键词,点击搜索按钮,最后使用 Pytest 的断言方法验证搜索结果页面的标题是否包含输入的关键词。
(三)参数化测试
Pytest 支持参数化测试,通过pytest.mark.parametrize装饰器实现。例如,测试不同关键词的搜索:
import pytest
@pytest.mark.parametrize("keyword", ["Selenium", "Pytest", "Allure"])
def test_baidu_search_param(keyword):
driver.get("https://www.baidu.com")
search_box = driver.find_element_by_id("kw")
search_box.send_keys(keyword)
search_button = driver.find_element_by_id("su")
search_button.click()
assert keyword in driver.title
这样可以使用不同的关键词多次执行测试用例,提高测试覆盖率。
四、执行测试与生成报告(一)执行测试
在命令行中进入测试脚本所在目录,输入以下命令执行测试:
pytest
Pytest 会自动发现并执行所有测试用例,并在命令行中输出测试结果摘要。
(二)生成 Allure 报告
执行测试后,输入以下命令生成 Allure 测试报告:
pytest --alluredir=./results
allure serve./results
第一条命令将测试结果数据保存到./results目录中,第二条命令启动 Allure 服务,在浏览器中打开生成的交互式测试报告,报告中详细展示了每个测试用例的执行情况、耗时、日志等信息,方便进行问题定位和分析。
五、测试优化与扩展(一)测试夹具(Fixture)
Pytest 的 Fixture 功能可以用于设置测试前置条件和清理操作。例如,创建一个用于初始化和关闭浏览器驱动的 Fixture:
import pytest
from selenium import webdriver
@pytest.fixture(scope="module")
def driver():
driver = webdriver.Chrome()
yield driver
driver.quit()
在测试用例中,通过将driver作为参数传入,即可使用该 Fixture 提供的浏览器驱动,并且在测试模块执行完毕后自动关闭浏览器。
(二)日志记录
在测试过程中,添加日志记录有助于排查问题。可以使用 Python 内置的logging模块,在测试脚本中配置日志记录的级别、格式和输出位置,记录测试过程中的关键操作和信息。
(三)持续集成集成
将这套测试体系集成到持续集成(CI)系统中,如 Jenkins、GitLab CI/CD 等。在代码提交或合并时自动触发测试执行,并生成 Allure 报告,实现自动化的测试流程,及时发现代码变更带来的问题 。