导读:一、UI自动化测试
主要用于模拟用户操作(点击、输入、滑动等),验证界面交互功能。
常用工具
Selenium(主流Web UI自动化工具)
支持多种浏览器(Chrome/Fi...
一、UI自动化测试
主要用于模拟用户操作(点击、输入、滑动等),验证界面交互功能。
常用工具
- Selenium(主流Web UI自动化工具)
- 支持多种浏览器(Chrome/Firefox/Edge等)
- 支持多语言(Python/Java等)
- PyAutoGUI(跨平台,支持桌面应用和Web)
- Appium(移动端App自动化)
Selenium 示例
python
复制
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
# 1. 启动浏览器
driver = webdriver.Chrome() # 需下载对应版本的chromedriver并配置环境变量
# 2. 打开页面
driver.get("https://www.baidu.com")
# 3. 定位元素并操作(显式等待优化稳定性)
search_box = WebDriverWait(driver, 10).until(
EC.presence_of_element_located((By.ID, "kw"))
)
search_box.send_keys("Python自动化测试")
# 4. 点击搜索按钮
driver.find_element(By.ID, "su").click()
# 5. 验证结果
WebDriverWait(driver, 10).until(
EC.title_contains("Python自动化测试")
)
assert "Python自动化测试" in driver.title
# 6. 关闭浏览器
driver.quit()
最佳实践
- 使用
WebDriverWait显式等待,避免硬性等待(如time.sleep) - 采用 Page Object 模式(PO设计模式)分离页面元素和测试逻辑
- 结合
pytest或unittest管理测试用例
二、接口自动化测试
验证API的功能、性能及数据正确性。
常用工具
- Requests(发送HTTP请求)
- unittest/pytest(测试框架)
- Pytest + Requests(主流组合)
- FastAPI/Flask Test Client(测试自身开发的API)
接口测试示例(Pytest + Requests)
python
复制
import requests
import pytest
# 定义测试用例
def test_get_api():
url = "https://api.example.com/users/1"
response = requests.get(url)
assert response.status_code == 200
assert response.json()["username"] == "test_user"
def test_post_api():
url = "https://api.example.com/login"
data = {"username": "admin", "password": "123456"}
response = requests.post(url, json=data)
assert response.status_code == 200
assert "token" in response.json()
# 使用pytest运行测试
# 命令行执行: pytest test_api.py
增强功能
-
参数化测试(多组输入验证):
python复制
@pytest.mark.parametrize("user_id, expected_username", [ (1, "user1"), (2, "user2"), ]) def test_multiple_users(user_id, expected_username): response = requests.get(f"https://api.example.com/users/{user_id}") assert response.json()["username"] == expected_username - 环境配置分离(通过配置文件或
.env管理不同环境URL) - 数据清理(如测试后删除测试数据)
三、进阶工具链
- 测试报告:
- Allure Framework:生成美观的HTML报告
- pytest-html:简单生成测试报告
- 持续集成(CI/CD):
- 集成到 Jenkins、GitHub Actions 或 GitLab CI
- Mock 服务:
- 使用 unittest.mock 或 pytest-mock 模拟依赖接口
四、注意事项
- UI测试:
- 元素定位优先使用
ID或XPath,避免依赖不稳定的CSS类名 - 注意动态加载内容的等待策略
- 元素定位优先使用
- 接口测试:
- 关注状态码、响应时间、数据格式和业务逻辑正确性
- 对敏感接口添加鉴权(如Token验证)
标签:一般
- 上一篇:Python自动化测试入门指南
- 下一篇:Python自动化测试指南



发表评论: