应用程序界面测试
OpenFactory 可以在托管桌面测试虚拟机中运行可重用的浏览器工作流程。 该应用程序可以由 OpenFactory 部署或托管在测试虚拟机的任何位置 可以达到。
场景结合了语义操作,例如打开、单击、键入、按键、等待和 使用屏幕截图、浏览器诊断和记录的判决进行断言。他们是 最适合已知的用户流程;使用自动步行器 有限的发现。
创建并运行场景
获取应用程序的测试虚拟机:
ensure_tester_vm(app="my-app", app_url="https://staging.example.com")然后保存一个场景,其步骤使用有意义的屏幕标签:
[
{ "action": "open_url", "value": "${APP_URL}" },
{ "action": "type", "target": "email field", "value": "${EMAIL}" },
{ "action": "type", "target": "password field", "value": "${PASSWORD}" },
{ "action": "click", "target": "Sign in" },
{ "action": "assert_text", "expect": "Dashboard" },
{ "action": "assert_no_error" }
]使用 create_app_scenario,然后运行返回的场景 ID
run_app_scenario。第一次运行通过 OmniParser 解析元素。后来
运行可以重用强化的元素缓存并重新解析仅更改的步骤。
检查诊断结果时是否缓存或解析了每个步骤。
传球意味着什么
仅当出现以下情况时,报告才算作验证:
- 其状态为
passed; - 针对预期环境进行修订;
- 任何分段保护和应用程序登录已完成;和
- 断言在产品内部运行,而不是在登录或保护页面上运行。
传递的场景仅演示声明的流程和断言。确实如此 未建立完整的应用程序正确性、可访问性、安全性或 跨浏览器行为。
变量和秘密
步骤参考值为 ${VAR},TOTP 种子为 ${totp:VAR}。非秘密
默认值可能会与该场景一起存在。秘密可以存储在所有者的
创建场景时加密的密钥存储;单次运行覆盖已通过
到 run_app_scenario 会针对该运行进行合并,并且不会保留。
不要在步骤文本、场景中放置文字密码、令牌或 TOTP 种子
描述、屏幕截图或问题导出。对于通过电子邮件发送的一次性代码,
email_otp 操作需要有效的、显式连接的 Gmail 集成
对于场景所有者。
有用的断言
assert_text验证预期的可见文本。assert_no_error检查内置或提供的错误短语。assert_visual将感知哈希与存储的基线进行比较。assert_stable对某个区域进行采样,以发现意外的闪烁/消失。assert_progress验证流区域是否持续更改 最短期限。network可以中断和恢复测试仪VM网络以进行恢复测试。
视觉和时间断言是启发式的。针对稳定调整阈值 在将漂移视为产品缺陷之前测试数据并检查捕获的帧。
直接和记录测试
对于探索性工作,请使用 desktop_open_url 驱动虚拟机,
desktop_screenshot、desktop_click、desktop_type 和相关桌面
工具。在以下情况下使用 start_app_test、record_app_test_step 和 finish_app_test
该手动序列应该成为可审核的运行。
annotate_screenshot 可以将标记框添加到证据中。注释说明了
审稿人应该检查什么;它本身并不能证明该元素有效。
操作注意事项
- 每个应用程序/主机重复使用测试虚拟机。扩展测试人员池以进行并行工作 而不是创建任意重复项。
- 默认测试仪没有额外的持久磁盘。仅请求持久性 当状态必须在重新启动后继续存在并接受较长的首次启动时。
- 客户端超时并不一定会取消后端工作;检查运行情况 在重试之前。
- 将报告保密,除非其屏幕截图和诊断信息已被公开 审查敏感数据。