Web自动化测试之困

简介:

标题借用《web之困》这本书名,借机吐槽一下在web自动化测试中遇到的各种不顺畅。看了这本书,大感欣慰,因为终于有专家说出了我多年想说而不好意思说的话——现在的web应用就是建立在一堆胡乱拼凑的技术基础之上的。
  从底层协议级就定义不周到渲染技术的五花八门;从古老的html、css、java applet、ActiveX到javascript、flash、sliverlight、html5;从浏览器的各显神通到眼花缭乱的版本升级;从静态到动态;从即时到异步,真是一个百家争鸣、百花齐放啊。虽说给普通用户带来了赏心悦目的享受,可真苦了我们这些测试工程师了。手工做浏览器兼容性测试都不是一般的麻烦,更别提自动化了。十几年前我每样技术都尝试去学习,后来发现我学的速度还赶不上技术新出的速度,于是我厌倦了,从此对web前端技术及其排斥。我幻想着某一天前端技术可以统一得象操作系统那样规矩和稳定。不过看来一时半会还实现不了,所以厌倦归厌倦,活还是要干的,所以几年来我也在考虑这是非做不可的。于是前一篇提到的vs2010就是一个尝试。当时考虑操作系统是ms家的、浏览器是ms家的、自动化工具是ms家的甚至C#语言也是ms家的,要是这样还不顺利,恐怕别的工具更别指望了。事实上,我还是低估了事情的复杂性。
  录制/回放遇到的麻烦随便列举一下就有这些:
  只支持ie,且不能使用64位版本
  视图缩放比例要求必须为100%
  不能识别flash插件
  各种意外(如窗口没有在最前端、没有最大化等、控件被阻止运行……)导致回放中断
  建立自动化任务时不能在后台运行(因为要在桌面环境真实启动浏览器),所以管理员必须登录。这样一来,服务器一旦重启就无法做到无人值守的继续运行
  ……
  诸如此类,总之想顺利走通一段自动化脚本可费劲了,经常是烦不胜烦
  为此我还总结出一堆录制脚本的经验,比如:
  把场景分割成每段尽量少操作的多个脚本文件
  尽量用键盘操作,少用鼠标操作
  屏幕上尽量少留无关窗口
  对于浏览器,尽量在同一个页签中操作,尽量避免弹出窗口造成主流程被干扰
  动作、脚本之间留的延时要足够,比如连续执行两条sql,就有可能第二条执行出错
  ……
  但真要把这些问题都注意到了,费的心还不如手工来一遍算了。再说费这么大事只是为了回归验证以前的功能,确实有点得不偿失。所以过后反思起来有这样一些教训:
  1.目标定位有偏差。借鉴自Apple Chow观点:只保留少数几个用来验证端到端的集成场景的高级别冒烟测试,除此之外尽可能编写底层的测试。
  2.工具不给力。当然如果有google的水平,自行探索和开发各式各样的测试工具和框架那自然是厉害了,但是没这水平啊,还是只能找现有的工具用。
  后续准备尝试selenium。说到这里,就想起有的团队成员提出经常换工具的困扰。——这个问题应该这样看:使用工具是为了解决问题,是人的思想和能力去驾驭工具而不能让工具限制了人的思想和能力。所以要去掌握事物的本质,那么换工具也会是经常和顺理成章的事情。

最新内容请见作者的GitHub页:http://qaseven.github.io/

相关文章
|
27天前
|
Web App开发 前端开发 JavaScript
探索Python科学计算的边界:利用Selenium进行Web应用性能测试与优化
【10月更文挑战第6天】随着互联网技术的发展,Web应用程序已经成为人们日常生活和工作中不可或缺的一部分。这些应用不仅需要提供丰富的功能,还必须具备良好的性能表现以保证用户体验。性能测试是确保Web应用能够快速响应用户请求并处理大量并发访问的关键步骤之一。本文将探讨如何使用Python结合Selenium来进行Web应用的性能测试,并通过实际代码示例展示如何识别瓶颈及优化应用。
93 5
|
1天前
|
Web App开发 测试技术 数据安全/隐私保护
自动化测试的魔法:使用Python进行Web应用测试
【10月更文挑战第32天】本文将带你走进自动化测试的世界,通过Python和Selenium库的力量,展示如何轻松对Web应用进行自动化测试。我们将一起探索编写简单而强大的测试脚本的秘诀,并理解如何利用这些脚本来确保我们的软件质量。无论你是测试新手还是希望提升自动化测试技能的开发者,这篇文章都将为你打开一扇门,让你看到自动化测试不仅可行,而且充满乐趣。
|
4天前
|
Web App开发 设计模式 JavaScript
自动化测试之美:如何利用Selenium实现Web应用的高效测试
【10月更文挑战第29天】在软件开发的世界中,测试是确保产品质量的关键步骤。本文将带你了解如何使用Selenium这一强大的自动化测试工具,提高Web应用测试的效率和准确性。通过实际案例,我们将探索Selenium的核心功能及其在现代软件开发中的应用,旨在帮助读者掌握自动化测试的精髓,从而提升软件测试工作的整体效能。
|
1月前
|
安全 Linux Shell
Kali渗透测试:使用Metasploit对Web应用的攻击
Kali渗透测试:使用Metasploit对Web应用的攻击
|
2月前
|
前端开发 机器人 测试技术
【RF案例】Web自动化测试弹窗处理
在进行Web自动化测试时,常会遇到不同类型的弹窗,如ajax、iframe、新窗口及alert/Confirm等。这些弹窗可通过Selenium进行定位与处理。其中,ajax弹窗直接定位处理;iframe需先选中再操作;新窗口类似iframe处理;而alert/Confirm则需特殊方法应对。在Robot Framework中,需先定义并获取窗口后使用特定关键字处理。此外,还有部分div弹窗需在消失前快速定位。希望本文能帮助大家更好地处理各类弹窗。
40 6
【RF案例】Web自动化测试弹窗处理
|
22天前
|
Web App开发 Java 测试技术
一、自动化:web自动化。Selenium 入门指南:从安装到实践
一、自动化:web自动化。Selenium 入门指南:从安装到实践
33 0
|
25天前
|
监控 Java Maven
springboot学习二:springboot 初创建 web 项目、修改banner、热部署插件、切换运行环境、springboot参数配置,打包项目并测试成功
这篇文章介绍了如何快速创建Spring Boot项目,包括项目的初始化、结构、打包部署、修改启动Banner、热部署、环境切换和参数配置等基础操作。
99 0
|
1月前
|
JavaScript 测试技术 持续交付
使用 GitLab CI/CD 管道自动化部署 Web 应用
【10月更文挑战第2天】使用 GitLab CI/CD 管道自动化部署 Web 应用
34 0
|
1月前
|
安全 Java Linux
Kali渗透测试:通过Web应用程序实现远程控制
Kali渗透测试:通过Web应用程序实现远程控制
|
3月前
|
监控 测试技术 持续交付
Web2py 项目部署也太让人头疼了吧!但掌握这些,你就能轻松搞定自动化部署!
【8月更文挑战第31天】在现代软件开发中,高效的项目部署至关重要。针对 Web2py 框架,自动化部署不仅提升开发效率,还减少了人为错误。首先需设置版本控制、服务器环境及配置管理;其次利用 CI/CD 工具(如 Jenkins)实现自动构建、测试与部署;再者采用 Docker 容器化技术确保跨环境一致性;最后部署监控与日志记录工具保障系统稳定性。通过这些步骤,可显著优化 Web2py 项目的部署流程。例如,使用 Fabric 可简化部署脚本编写,实现服务器代码更新、依赖安装及服务重启等操作自动化。
35 1