Adomate 自动化测试快速入门指南

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.04Windows 11 / macOS 13 / Ubuntu 22.04Python 版本Python 3.8+Python 3.10+浏览器Chrome 100+ / Firefox 95+ / Edge 100+Chrome 最新稳定版内存4GB8GB网络可正常访问 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 选择器语法简洁,执行速度快于 XPathXPath 适合处理复杂动态元素,支持文本匹配、父子遍历等高级语法4.3 Adomate 场景定位示例针对 Adomate 平台的典型场景,定位写法如下:# 1. 定位创意生成按钮(ID 定位)create_btn