Adomate 自动化测试快速入门指南
前言
Adomate 作为数据驱动的广告创意生成平台,可对接 Meta 广告账户、广告素材库、Trustpilot 与 Amazon 用户评论,自动化构建创意研究工作流并生成可追溯的品牌化广告方案。随着平台功能快速迭代,手工回归测试成本持续升高,引入 UI 自动化测试成为保障交付质量、提升验证效率的核心手段。
本文面向测试新手,以 Adomate Web 平台为测试对象,从零开始手把手搭建自动化测试体系,覆盖环境搭建、脚本编写、元素定位、断言验证到持续集成部署的完整流程,所有代码均可直接复现落地。
① Adomate 核心功能与自动化测试应用场景解析
1.1 Adomate 平台核心能力
在开展自动化测试前,需先明确平台核心业务链路,确保测试用例覆盖核心价值场景:
- 多源数据接入:支持绑定 Meta 广告账户、同步素材库资源、抓取 Trustpilot/Amazon 用户评论数据,所有数据可追溯原始触发源
- 创意工作流编排:通过可视化流程配置,自定义数据提取、素材组合、文案生成的全链路规则
- 批量创意生成:基于输入的产品信息与品牌规范,一键生成多组符合品牌调性的广告创意变体
- 效果回溯分析:将生成的创意与投放数据关联,验证创意转化率表现,形成数据闭环
1.2 自动化测试的核心价值
Adomate 业务链路长、数据依赖多、版本迭代频繁,手工测试存在明显瓶颈:
- 回归测试覆盖不全,新版本易引发核心功能回归缺陷
- 多组创意生成的验证工作量大,手工操作重复度高
- 跨浏览器、多分辨率的兼容性验证成本高
- 数据溯源链路的手工校验耗时久,易出现人为疏漏
引入自动化测试后,可实现核心场景的高频回归,释放人力投入复杂场景的探索性测试。
1.3 典型自动化测试应用场景
- 核心链路冒烟测试:每次版本发布后,自动验证登录、创意生成、数据导入等核心流程是否正常
- 回归测试全覆盖:对历史功能点进行批量验证,避免新代码引入旧缺陷
- 兼容性测试:自动在 Chrome、Firefox、Edge 等多浏览器下执行相同用例,验证页面渲染与功能一致性
- 定时巡检任务:线上环境定时执行健康检查,实时监控平台可用性
- 数据驱动验证:批量传入多组产品参数,验证创意生成的稳定性与输出合规性
1.4 技术选型说明
本教程采用Python + Selenium + Pytest技术栈,兼顾入门门槛与扩展性:
- Python:语法简洁,生态丰富,新手易上手
- Selenium:主流 Web UI 自动化框架,兼容所有主流浏览器,社区资料完善
- Pytest:轻量级测试框架,支持参数化、 fixture、插件扩展,测试报告生成便捷
② 运行环境搭建与依赖库安装
2.1 基础环境要求
| 类别 | 最低要求 | 推荐配置 |
|---|---|---|
| 操作系统 | Windows 10 / macOS 11 / Ubuntu 20.04 | Windows 11 / macOS 13 / Ubuntu 22.04 |
| Python 版本 | Python 3.8+ | Python 3.10+ |
| 浏览器 | Chrome 100+ / Firefox 95+ / Edge 100+ | Chrome 最新稳定版 |
| 内存 | 4GB | 8GB |
| 网络 | 可正常访问 Adomate 平台 | 稳定公网连接 |
2.2 Python 环境与虚拟环境配置
首先安装 Python 环境,推荐使用虚拟环境隔离项目依赖,避免版本冲突。
1. 验证 Python 安装
打开终端执行命令,确认 Python 与 pip 可用:
python--versionpip--version2. 创建项目虚拟环境
# 创建项目目录mkdiradomate-auto-testcdadomate-auto-test# 创建虚拟环境python-mvenv venv# 激活虚拟环境# Windows 系统venv\Scripts\activate# macOS/Linux 系统sourcevenv/bin/activate激活成功后,终端前缀会出现(venv)标识。
2.3 核心依赖库安装
在激活的虚拟环境中执行以下命令,安装所有必需依赖:
# 核心自动化框架pipinstallselenium# 自动管理浏览器驱动,无需手动下载对应版本pipinstallwebdriver-manager# 测试执行框架pipinstallpytest# HTML 测试报告生成pipinstallpytest-html# YAML 配置文件解析pipinstallpyyaml2.4 浏览器驱动自动配置
传统方式需要手动下载与浏览器版本匹配的驱动,新手极易踩坑。本教程使用webdriver-manager自动管理驱动,无需手动配置。
验证驱动可用性,创建test_env.py文件:
fromseleniumimportwebdriverfromselenium.webdriver.chrome.serviceimportServicefromwebdriver_manager.chromeimportChromeDriverManager# 自动下载并安装对应版本的 ChromeDriverdriver=webdriver.Chrome(service=Service(ChromeDriverManager().install()))# 打开 Adomate 平台driver.get("https://app.adomate.com")# 打印页面标题print("页面标题:",driver.title)# 关闭浏览器driver.quit()2.5 环境验证
执行脚本:
python test_env.py若成功打开 Chrome 浏览器并访问 Adomate 平台,控制台输出页面标题,则环境搭建完成。
③ 首个自动化脚本编写与执行
3.1 测试场景定义
我们以Adomate 平台登录功能作为首个自动化测试场景,验证正常账号密码可成功登录并跳转至工作台。
3.2 脚本基础结构
一个标准的 Selenium 测试脚本包含 5 个核心部分:
- 导入依赖模块
- 初始化浏览器驱动
- 执行页面操作与交互
- 断言验证结果
- 关闭驱动释放资源
3.3 完整登录测试脚本
创建test_login.py文件,写入以下带详细注释的代码:
fromseleniumimportwebdriverfromselenium.webdriver.chrome.serviceimportServicefromselenium.webdriver.common.byimportByfromwebdriver_manager.chromeimportChromeDriverManagerimporttimedeftest_adomate_login():# 1. 初始化 Chrome 驱动driver=webdriver.Chrome(service=Service(ChromeDriverManager().install()))# 设置窗口最大化driver.maximize_window()# 设置隐式等待 10 秒,全局等待元素加载driver.implicitly_wait(10)try:# 2. 打开 Adomate 登录页driver.get("https://app.adomate.com/login")# 3. 定位元素并执行登录操作# 输入邮箱email_input=driver.find_element(By.ID,"email")email_input.send_keys("test@example.com")# 输入密码password_input=driver.find_element(By.ID,"password")password_input.send_keys("Test@123456")# 点击登录按钮login_btn=driver.find_element(By.ID,"login-btn")login_btn.click()# 等待页面跳转time.sleep(2)# 4. 断言验证登录结果# 验证跳转后 URL 包含 dashboardassert"dashboard"indriver.current_url,"登录后未跳转到工作台页面"# 验证页面显示用户名user_name=driver.find_element(By.CLASS_NAME,"user-name").textassertuser_name=="Test User","用户名显示错误"print("登录测试用例执行通过")finally:# 5. 关闭浏览器,释放资源driver.quit()if__name__=="__main__":test_adomate_login()3.4 脚本运行与结果查看
方式一:直接运行 Python 文件
python test_login.py控制台输出“登录测试用例执行通过”则代表用例执行成功。
方式二:使用 Pytest 执行
pytest test_login.py-vPytest 会自动识别以test_开头的函数,执行并输出结构化的测试结果。
3.5 新手常见注意点
- 元素定位表达式需与实际页面一致,若提示找不到元素,先通过浏览器 F12 开发者工具验证定位表达式
- 必须添加等待机制,避免页面未加载完成就执行元素操作
finally块确保无论用例是否通过,都会关闭浏览器,避免残留进程占用资源
④ 元素定位策略与交互操作详解
元素定位是 UI 自动化的基础,定位方式的稳定性直接决定脚本的健壮性。
4.1 八大元素定位方式
Selenium 提供 8 种元素定位方法,适配不同场景:
| 定位方式 | 语法 | 适用场景 | 稳定性 |
|---|---|---|---|
| ID 定位 | By.ID | 元素有唯一 ID 属性 | 最高 |
| Name 定位 | By.NAME | 表单元素有 name 属性 | 高 |
| Class 定位 | By.CLASS_NAME | 元素有唯一 class | 中 |
| 标签定位 | By.TAG_NAME | 通过标签名批量定位元素 | 低 |
| 链接文本定位 | By.LINK_TEXT | 定位<a>标签完整文本 | 中 |
| 部分链接定位 | By.PARTIAL_LINK_TEXT | 定位<a>标签部分文本 | 中 |
| CSS 选择器 | By.CSS_SELECTOR | 复杂层级、无 ID/Name 的元素 | 高 |
| XPath 定位 | By.XPATH | 任意复杂场景,支持父子关系 | 中高 |
4.2 定位优先级原则
实际项目中推荐遵循以下优先级选择定位方式:
ID > Name > CSS 选择器 > XPath > Class > 其他
- 优先使用 ID,全局唯一,不受层级影响,稳定性最高
- CSS 选择器语法简洁,执行速度快于 XPath
- XPath 适合处理复杂动态元素,支持文本匹配、父子遍历等高级语法
4.3 Adomate 场景定位示例
针对 Adomate 平台的典型场景,定位写法如下:
# 1. 定位创意生成按钮(ID 定位)create_btn