自动化测试总结(二)

简介: 关联上文:自动化测试总结(一)其他参考文档见文末GUI测试的稳定性问题关于这个问题,最典型的情景就是:同样的测试用例,在同样的测试执行环境下,测试的结果有时是Success,有时是Fail,这严重降低了GUI测试的可信性,同时也是GUI层面的自动化测试位于金字塔最顶端的原因之一。

关联上文:自动化测试总结(一)
其他参考文档见文末

GUI测试的稳定性问题

关于这个问题,最典型的情景就是:同样的测试用例,在同样的测试执行环境下,测试的结果有时是Success,有时是Fail,这严重降低了GUI测试的可信性,同时也是GUI层面的自动化测试位于金字塔最顶端的原因之一。

在实际的项目过程中,GUI测试几乎不可能做到100%稳定,根据我的经验,如果能够做到 90% 以上的稳定性,就已经非常不错了,这需要整个产品技术团队的共同努力才有希望达成。

要提高 GUI 测试稳定性,首先我们需要知道到底是什么原因引起的不稳定。我们必须找出尽可能多的不稳定因素,然后找到每一类不稳定因素对应的解决方案。我列举了几种常见的造成GUI测试不稳定的因素,如下:

  • 非预计的弹出弹出对话框
    在用例执行过程中,操作系统或被测系统可能会突然弹出预期范围之外的对话框,GUI自动化测试有可能就会因此而失败。

解决方案:异常场景恢复模式?无界面GUI自动化测试?

  • 页面控件属性的细微变化
    如果页面控件的属性发生了变化,哪怕只是细微的变化,也必定会导致测试脚本的元素定位失败。这可以说是GUI自动化测试最大的痛点。
    目前,一些商用 GUI 自动化测试工具,比如 UFT(原QTP),已经集成了模糊匹配的功能。通常情况下,只需要启用“模糊匹配”选项即可。如果某个对象的定位是通过模糊匹配完成的,那么,测试报告中将会显示该信息,明确告知此次对象识别是基于模糊匹配完成的,因为 GUI 自动化工具并不能保证每次模糊匹配都一定正确。

解决方案:元素定位采用模糊匹配技术?

  • 随机的页面延迟造成控件识别失败
    随机的页面延迟,也是 GUI 测试防不胜防的。既然是随机的,也就是说我们没有办法去控制它,解决办法是加入重试(retry)机制。重试机制是指,当某一步 GUI操作失败时,框架会自动发起重试。对于Robot Framework+SeleniumLirary,可以使用有wait until系列的关键字(智能等待),尽量少的使用sleep。
Wait For Condition
Wait Until Element Contains
Wait Until Element Does Not Contain
Wait Until Element Is Enabled
Wait Until Element Is Not Visible
Wait Until Element Is Visible
Wait Until Page Contains
Wait Until Page Contains Element
Wait Until Page Does Not Contain
Wait Until Page Does Not Contain Element

解决方案:重试机制retry

  • 测试数据问题
    测试数据问题,也是造成 GUI 自动化测试不稳定的一个重要原因。比如,测试用例所依赖的数据被其他用例修改了。要解决此类的问题,就要回归到第一篇中所谈到的内容,必须要保证用例之间的独立性和尽量减少对执行环境的依赖。Robot框架本身不会规定Case执行的顺序,所以从某种程度上来说同一层级的Cases是随机执行的。很典型的情况就是,测试用例在本地调试时怎么跑怎么过,放到Server上所有Cases一起跑的时候就会Fail,还可能是偶发的,这种情况下就很可能是由于其他Case的痕迹影响到了它,查找问题的根源往往比较耗时。

解决方案:保证用例之间的独立性和尽量减少对执行环境的依赖

界面自动化测试,它最接近用户真实场景,也容易发现问题,但它的实现成本最高且太容易受外部依赖,容易影响脚本成功率。总体来说,适当的界面自动化测试是有必要的,但是真的没有必要在UI层投入太多精力。
【To be continued...】

参考文档

  1. 《软件测试52讲》,极客时间 2018-08-06 茹炳晟
相关文章
|
5天前
|
JavaScript API iOS开发
DeepSeek Harness下载、安装、配置一篇搞定(2026整理,送常用插件)
DeepSeek Harness(DSH)是DeepSeek于2026年开源的MIT协议AI Agent框架,支持插件化组装模型、工具、沙箱与UI,兼容主流大模型。本文提供免Node.js的桌面端安装包(Win/macOS),含详细图文教程及热门插件推荐。
2393 16
|
5天前
|
iOS开发 Docker MacOS
【2026实测】Docker Desktop下载、安装、汉化、配置教程(附官网安装包)
Docker Desktop 是 Docker 官方推出的桌面容器管理工具,集成引擎、CLI、图形界面与 Kubernetes,支持 Win/macOS/Linux。2026 最新版 4.88.1 强化 ARM 原生运行、镜像加速及资源可视化,附中文汉化与国内镜像配置指南。
1054 3
|
云安全 安全 网络安全
|
5天前
|
Linux 开发工具 iOS开发
Codex保姆级教程(下载+安装+登录+使用,含所有版本,2026最新)
Codex是OpenAI推出的开源AI编程智能体,本地运行,可理解整个代码库,支持自然语言指令改代码、执行命令、跑测试、修Bug,兼容Win/macOS/Linux。(239字)
|
6天前
|
安全 算法 定位技术
《高性价比人生指南》完整原版:普通人用最少的资源,过好这一生的底层逻辑~How To Live Better
📖《高性价比人生指南》是一份基于实证、拒绝焦虑的生存手册,倡导以“人生时薪”为视角,重新计算时间、金钱与精力的成本与收益。它不承诺逆袭,只教人算清账:省下的钱若耗掉时间便亏;买体验比买物品更值;睡眠是最高杠杆的健康投资;关系贵在情绪价值而非表面热络;学习重在改变行为而非自我安慰。核心理念:用低成本、高回报的微小行动,换取长期的选择权——不是成为谁,而是掌控自己人生的主动权。
|
18天前
|
人工智能 API 开发工具
DeepSeek Harness 神插件:白嫖 13 家大厂模型
`dsh-our-free-model` 是 DeepSeek Harness 神级插件:零配置、零API Key、零账号,聚合13家大厂免费模型(含DeepSeek V4.1 Flash、Kimi K3等),支持本地网关、用量看板与自动降级,真正实现“白嫖即用”。
3208 50
|
12天前
|
JavaScript 安全 前端开发
Nodejs Brotli decoder 代码执行漏洞 (CVE-2026-111497)10629
Node.js发布安全更新修复Brotli解码器高危RCE漏洞(CVE-2026-111497),建议受影响版本用户立即升级。
2116 2
|
11天前
|
人工智能 JSON Linux
【保姆级】ComfyUI部署教程(下载+安装+配置+工作流,2026最新)
ComfyUI 是一款开源节点式AI生成工具,支持图像、视频、音频及3D内容创作。通过拖拽连线组合模型加载、提示词、采样等节点,构建可复用、易修改的工作流,兼容SD1.5、SDXL、Flux、Qwen Image等主流模型。

热门文章

最新文章