测试工具

主流自动化测试工具、框架与辅助工具一览

Web 自动化测试

pytest
Python 最流行的测试框架
安装命令pip install pytest
特点简洁、强大、插件丰富
Selenium
Web 自动化测试的行业标准
安装命令pip install selenium
特点支持多语言、多浏览器
Playwright
微软开源的现代化自动化框架
安装命令pip install playwright
特点自动等待、多浏览器、录制
Cypress
前端开发首选测试框架
安装命令npm install cypress
特点实时重载、调试友好

移动端 & 接口测试

Appium
跨平台移动端自动化测试
安装命令npm install -g appium
特点支持 iOS / Android / 混合应用
Postman
API 接口测试与调试工具
下载Postman Desktop Agent
特点请求构建、集合运行、环境变量
requests
Python HTTP 请求库
安装命令pip install requests
特点简洁易用、支持会话
JMeter
Apache 性能测试工具
下载JMeter 5.6+
特点压力测试、接口测试

辅助 & 持续集成工具

Jenkins
持续集成服务器
下载Jenkins 2.400+
特点流水线构建、插件丰富
Git
分布式版本控制系统
下载Git for Windows
特点分支管理、协作开发
Docker
容器化部署工具
下载Docker Desktop
特点环境一致性、快速部署
Allure
自动化测试报告生成工具
安装命令pip install allure-pytest
特点精美报告、趋势图表
SikuliX
基于图像识别的自动化工具
下载SikuliX IDE
特点无需定位元素、屏幕识别
Maven
Java 项目构建与依赖管理
下载Maven 3.9+
特点POM 配置、插件扩展

pytest + Selenium 示例

以下是一个 pytest 结合 Selenium 的测试示例,展示如何编写可维护的自动化测试用例。

# conftest.py - 全局配置 import pytest from selenium import webdriver from selenium.webdriver.chrome.service import Service from webdriver_manager.chrome import ChromeDriverManager @pytest.fixture(scope="function") def driver(): service = Service(ChromeDriverManager().install()) drv = webdriver.Chrome(service=service) drv.set_window_size(1920, 1080) yield drv drv.quit()
# test_login.py - 登录测试用例 import pytest from selenium.webdriver.common.by import By from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.support import expected_conditions as EC class TestLogin: def test_login_success(self, driver): driver.get("file:///F:/autotest_project/login.html") WebDriverWait(driver, 10).until( EC.presence_of_element_located((By.ID, "username")) ) driver.find_element(By.ID, "username").send_keys("admin") driver.find_element(By.ID, "password").send_keys("123456") driver.find_element(By.ID, "loginBtn").click() assert "登录成功" in driver.switch_to.alert().text def test_login_empty(self, driver): driver.get("file:///F:/autotest_project/login.html") driver.find_element(By.ID, "loginBtn").click() alert = driver.switch_to.alert() assert "请输入" in alert.text alert.accept()
运行命令:pytest test_login.py -v --tb=short