维持硒测试自动化的完美方法

毫无疑问, 自动浏览器测试已经改变了软件开发的工作方式。 如果不是Selenium,我们将无法像我们一样使用各种各样的无错误Web应用程序。 但是有时,甚至IT部门也误解了自动化一词。

大多数人认为计算机将为他们完成所有测试! 他们最终还以为可以使整个产品自动化。 好吧,我并不是说他们做不到,而是要依靠完全的自动化来维护它。 毕竟,这并不总是一劳永逸! 自动化会产生您不容忽视的维护成本。

那么,Selenium测试自动化工程师最大的噩梦是什么? 现在我们知道这是自动化测试维护。 即使在用户界面中进行很小的更改,也有可能破坏测试。 这要求Selenium测试自动化具有理想的维护过程。 关于这一点,我们将在本文中讨论维持Selenium测试自动化的完美方法。

有哪些不同类型的测试维护?

测试维护包括两大类过程。 首先是当已经进行的测试可能开始失败时。 另一类是生命线工具依赖性的变化。 让我们分别看看这两种情况。

  • 测试失败时

测试失败的第一反应是什么? 当然,确定失败的原因。 有时软件中可能存在缺陷。 其他原因可能是无法预料的副作用和行为改变。 在这种情况下,修复代码或更新测试会有所帮助。 有时,团队可能必须同时做这两项。

  • LifeLine工具依赖关系的变化

生产中运行的Selenium Test自动化工具需要支持。 当公司更改报告工具或API时,它可能需要对这些工具的某些元素进行更改。 这使得它可以作为工具集的一部分运行。 如果需要更新工具基础结构,则此类测试自动化维护还包括对工具进行培训的开发人员。

自动化测试维护有什么问题?

当谈到测试自动化时,首先想到的是什么? 好吧,对我来说,是硒。 毫不夸张地说,Selenium测试自动化统治着测试自动化领域。 但是问题在于它使用了JavaScript。 而且由于JavaScript依赖于定位符,因此随着page元素的移动,定位符也会随之移动,结果是选择了错误的定位符。

创建脚本时,至关重要的是要确定要与之交互的元素的选择器。 运行测试脚本时,您可以在页面上找到此选择器。 这是团队采取适当行动的时候。 但是随着UI的发展和变化,页面元素可以移动。

现在想象一下与这些元素交互的不同测试。 为防止测试失败,更新这些测试很重要。 有时,要经过几步才能确定真正的错误。 现在,由于您必须返回几步来找出问题所在,因此使过程变得更加困难。

硒测试自动化维护是一个持续的需求。 解决现有测试中的问题可能会浪费测试人员的宝贵时间。 毕竟,他们可以在这段时间内创建新的测试,完善测试套件并完成更多工作! 那么,如何使事情变得容易呢? 让我们来看看。

敏捷环境中的开发人员如何支持测试自动化维护?

硒测试自动化团队已经承担了保持工具和脚本更新的责任。 因此,随着用于检查特定元素的Selenium自动测试的数量增加,团队的工作量将越来越大。

对于传统的瀑布式框架,外部团队负责维护测试脚本。 因此,它们使开发人员不必这样做。

但是,敏捷的框架消除了对外部团队的需求。 敏捷方法论包括一个跨职能的开发团队和一个敏捷测试人员。 如果检查失败,则由开发团队负责。 他们可以构建,执行自动浏览器测试,修复和重新测试,换句话说,可以体验整个反馈周期。 最好的部分是,他们不必坐在那里等待外部团队的投入。

与拥有孤立的开发和测试团队的敏捷公司相比,敏捷公司产生的反馈周期更加紧凑。 敏捷测试人员知道需要更新什么。 他们还知道各种错误修复以及导致问题的原因。 他们还可以向程序员询问影响测试的代码更改。 这样,测试信息将立即可用。 因此,您可以在收到消息后立即对其进行操作,而不必将信息保留在队列中。

自动化测试在敏捷中的作用

跟上维护硒测试自动化的需求

一旦遇到测试失败,立即开始寻找补救措施就很重要。 这要求开发团队为硒测试自动化维护制定计划。 这包括弄清楚谁会做什么,并相应地分配任务。

如果没有计划,则整个工作量可能会落在无能的人身上。 即使落在熟练工人的手中,公司也有可能使勤奋的员工负担过重。 这增加了倦怠的风险,倦怠是整个硒测试自动化维护过程中的敌人。 最坏的情况是,您会因为精疲力尽而失去宝贵的资产。

最小化测试自动化维护的最佳实践

自动化测试工具需要维护。 如果您无法跟上与维护相关的需求,那么以后可能要付出代价。 这里有一些减少自动浏览器测试维护的最佳实践。

1.保持自动化设计的简单性和战略性

保持简单是简化测试维护过程的关键。 现在,我知道您可能会认为我说的话说起来容易做起来难。 但是您应该尽量使用简单的Selenium测试自动化脚本。 原因是您可以快速执行低级测试。 此外,它们还易于维护,因为它们减少了维护工作量。

不必要地使测试套件复杂化会增加发生故障的机会。
但是有时候,复杂的情况是不可避免的。 在这种情况下,最好的解决方案是创建可重用的测试。

2.激发开发人员注意测试的精神

更新的UI是至关重要的过程,可为最终用户提供愉悦的体验。 但是通常,UI / UX开发人员在编写代码时不会在心中进行测试。 在这种情况下,为每个对象制定命名约定可能会有所帮助。 当您拥有稳定的QA ID时,Selenium测试自动化脚本将随着代码和UI / UX设计的不同方面不断识别对象。

测试人员和开发人员之间更好协作的7种方法

3.建立保持自动化的过程

您是否具有检查和更新Selenium测试自动化脚本的系统? 如果没有,那么该是时候建立一个使Selenium测试自动化保持更新的过程了。 我确信您的团队必须努力提供不断改进应用程序的功能。 但是您的测试脚本是否遵循该套件? 好吧,他们这样做很重要! 从长远来看,制定既定的策略来确保相同效果将节省大量工作。

4.建立智能测试执行策略

每个公司都感谢他们的辛勤工作。 但是您知道什么可以使公司蓬勃发展吗? 聪明的工作! 现在,我并不是说您不应该努力工作。 只是团队不必每次部署新代码都运行一个完整的测试周期。 毕竟,节省额外的精力并将其转移到其他地方没有什么害处。

涵盖所有主要测试案例的每晚自动浏览器测试是您的理想之选。 通过测试用例,我并不是说非常关键的用例。 您可以在此策略中涵盖常规维护测试。 自动化测试周期的结果将帮助您识别或解决夜间自动化测试中的问题。

为什么您需要了解测试管理策略?

5.识别片状测试并努力减少它们

在确定并尝试减少片状测试之前,让我们看一下它们是什么。 假设您在相同的参数下运行测试。 但是它们仍然给出不一致的结果。 它们被称为片状测试。 换句话说,易碎测试是测试人员再次运行时通过的失败测试。 通常,这在用户界面测试中普遍存在。

在自动浏览器测试设置中可能会出现松软感,而不是开发代码。 不幸的是,您可能无法完全避免使用它们,识别出片状测试并快速对其做出响应非常重要。 因此,减少不稳定的测试将帮助您轻松维护测试套件。

6.将自动化工作重点放在高价值和不稳定的功能上

哪些自动化测试最容易维护? 从未写过的那个。 硒测试自动化并不容易。 编写新测试肯定会花费大量时间。 因此,为了最大程度地减少我们的测试自动化维护工作,您需要考虑为哪些功能编写测试。 因此,建议将自动化工作重点放在高价值和不稳定的功能上。 围绕关键业务价值案例进行自动化测试,而不是围绕Web应用程序的亮丽外观进行自动化测试。

7.自动化测试报告

如果无法衡量,就无法改进。 话虽这么说,至关重要的是继续监视测试结果,以确定哪些地方需要改进以及哪些功能稳定。 同样,需要保留重要信息的测试结果,以备将来参考。

要自动执行测试报告,您可以利用pytest和Selenium等框架来最大程度地减少测试自动化维护工作。通过将报告与自动浏览器测试相结合,可以使生成的测试结果更具洞察力。

<中心
在PyUnit中生成XML和HTML报告以进行测试自动化
</ center

8.实施云硒网格

在本地Selenium Grid上执行测试可能非常繁琐,因为它可能需要您管理和设置本地基础结构。 本地Selenium Grid会带来一些可伸缩性问题,因为您的本地基础架构可能无法涵盖所有​​主要的OS,浏览器及其不同版本。 因此,建议使用基于云的硒网格。 您可以利用LambdaTest 云Selenium Grid在您的浏览器矩阵上执行并行测试 。

使用云Selenium Grid,无需设置和维护虚拟机和浏览器。 通过使用LambaTest Selenium Grid,您可以在2000多种真实的浏览器及其不同版本上运行测试。 这不仅可以帮助您节省基础架构成本,还可以帮助您扩展测试工作,并留出充裕的时间专注于重要任务。

LambdaTest Selenium Grid入门。 您的前100个自动化测试分钟即将到来。 立即注册!

总结一下

现在,如果您认为这需要太多的努力,请相信我,这是值得的。 我们已经知道自动化测试有多么有益。 那么,为什么要让维护工作阻止您利用自动化测试的所有令人兴奋的优势呢? 您需要做的就是制定一个测试管理策略计划并坚持执行。 其余的将全部自动放置到位。

如果您喜欢本文,则可以单击响铃图标,以帮助我们在发布新博客时通知您。 另外,请随时在Twitter上转发我们,与您的朋友分享这篇文章。 测试愉快!

我是计算机科学学位的工程师,也是一名热情的作家。 我作为网络内容作家的职业归功于结合技术背景进行写作的诀窍。 我坚信利用我的技能来通过我的写作传播意识并简化人们的生活! 当我不忙于玩文字游戏时,我喜欢沉迷于阅读和上健身房等爱好。

翻译自: https://www.javacodegeeks.com/2020/05/the-perfect-way-to-maintain-your-selenium-test-automation.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/339671.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

oracle42997,oracle与db2的比较

在DB2中从客户端访问服务器端的数据库时&#xff0c;不能直接用connect命令&#xff0c;而必须先建立通信node&#xff0c;再在node的基础上建立数据库连接。在命令行的具体操作如下&#xff1a;->db2 catalog tcpip node ABC remote serverName server 50000->db2 catal…

双色球霸主网络问题_霸主–统治和管理API的地方

双色球霸主网络问题今天我们生活在一个越来越分散的世界中。 如今的计算机系统不再是在随机桌子下面的某些硬件上运行单个部门项目&#xff0c;而是大规模&#xff0c;集中甚至分散地运行。 监视和管理的需求从未改变&#xff0c;但是随着时间的推移变得越来越复杂。 如果将所有…

php验证码 php中文网,ThinkPHP 使用不同风格及中文的验证码

使用其他风格验证码在上文《ThinkPHP 验证码详解及实例》中了解了 ThinkPHP 验证码的具体用法&#xff0c;本文将进一步介绍如何使用不同风格的验证码以及使用中文验证码。上文例子使用的是默认参数&#xff0c;也就是生成 4 位的数字验证码。buildImageVerify 方法生成验证码时…

Spring Boot端口从默认更改为自定义或新端口

更改Spring Boot应用程序端口的快速指南。 application.properties文件和yml文件中的server.port属性的示例。 以及从命令行参数 SpringBootApplication&#xff0c;WebServerFactoryCustomizer 1.简介 在本教程中&#xff0c;您将学习如何在Spring Boot应用程序中更改端口。 …

java 开发人员工具_Java开发人员应该知道的5种错误跟踪工具

java 开发人员工具随着Java生态系统的发展&#xff0c;可满足不断增长的请求和用户对高性能需求的Web应用程序成为了新型的现代开发工具。 具有快速新部署的快速节奏环境需要跟踪错误&#xff0c;并以传统方法无法维持的水平获得对应用程序行为的洞察力。 在本文中&#xff0c;…

oracle定时关闭job,Oracle 定时JOB

讲一下Oracle创建临时job小窍门&#xff0c;创建Oracle临时JOB是为了临时执行调用过程或者函数&#xff0c;只调用一次。1、创建Oracle临时jobdeclareVJOB number;beginsys.dbms_job.submit(VJOB,‘PKG_RULECALL.MAKE_ALL_SAMPLE_BY_MONTH_WTH(‘‘201701‘‘,NULL);‘,Sysdat…

Apache Camel 3.2 – Camel的无反射配置

在Apache Camel项目中&#xff0c;我们正在努力开发下一个即将发布的下一个Apache Camel 3.2.0版本。 我们在Camel 3中努力研究的问题之一就是使其变得更小&#xff0c;更快。 其中一个方面是配置管理。 您可以按照12要素原则以多种方式完全配置Camel&#xff0c;以使配置与应…

oracle dbwr trace文件,ORA-01157: cannot identify/lock data file 19 - see DBWR trace file问题处理...

ORA-01157: cannot identify/lock data file 19 - see DBWR trace file问题处理告警信息&#xff1a;ORA-01157: cannot identify/lock data file 19 - see DBWR trace fileORA-01110: data file 19: /app/Oracle/oradata/users02.dbfORA-27037: unable to obtain file statusS…

java jsoup解析_3使用Jsoup解析Java中HTML文件的示例

java jsoup解析HTML是Web的核心&#xff0c;无论您是通过JavaScript&#xff0c;JSP&#xff0c;PHP&#xff0c;ASP或任何其他Web技术动态生成的&#xff0c;您在Internet上看到的所有页面都是基于HTML的。 您的浏览器实际上是解析HTML并为您呈现它。 但是&#xff0c;如果需要…

linux 命令解码空格,Shell 编程:Bash空格的那点事

先了解下bash中什么时候该用空格&#xff0c;什么时候不该用。1. 等号赋值两边不能有空格2. 命令与选项之间需要空格3. 管道两边空格可有可无我们来看看常见的问题1. 赋值时等号两边或者只有左边多了空格igigentoo ~ $ var1 testbash: var1: command not foundigigentoo ~ $ e…

使用类似Lambda的语法切换为Java中的表达式

从Java 14开始&#xff0c; switch表达式具有额外的Lambda式 &#xff08; case ... -> labels &#xff09;语法&#xff0c;它不仅可以用作语句&#xff0c;还可以用作计算为单个值的表达式。 使用新的类似Lambda的语法&#xff0c;如果标签匹配&#xff0c;则仅执行箭头…

配置linux系统ip,Linux系统IP地址配置

命令临时配置ifconfig [Network card name] 10.50.6.16 netmask 255.255.254.0或者ip addr add 10.50.6.200/23 dev [Network card name]router add default gw 10.50.6.1 #添加默认路由重启后失效ip addr add命令添加的IP地址需要使用 ip a show [Network card name]命令查看例…

【AI提示词艺术】第12期 摄影艺术构图处理和人像生成的技巧

摄影艺术构图 星空宇宙 关键词&#xff1a; 强烈的明暗对比,8k,精细的描述,相片纸,超高分辨率,无建筑的,大自然,星空&#xff0c;云朵&#xff0c;刺眼流星&#xff0c;群星&#xff0c;银河&#xff0c;仰视视角&#xff0c;广角镜头 以下是按照提示词类别整理的相关描述&a…

超音速亚原子Enterprise Java

我创建了一个视频&#xff0c;其中用Quarkus&#xff08;用于现代Java应用程序的运行时&#xff09;解释“超音速亚原子Java”。 无论您是刚开始涉足Enterprise Java领域&#xff0c;还是已经是一位经验丰富的Java EE / J2EE开发人员&#xff0c;本课程都将指导您如何在2020年构…

linux 打包排除多个目录,tar打包整个目录(可排除子目录)几种方法

例1。压缩并打包目录tar -czf small.tar.gz small(目录名) ;例2。tar zcvf backup.tar.gz site/* –excludesite/attach –excludesite/images简单解释一下&#xff1a;ls -l | grep “^-” 用来把当前目录下所有文件列出来&#xff0c;不包括子目录&#xff1b;awk ‘{print …

Kogito,ergo规则:从知识到服务,轻松自如

欢迎阅读有关Kogito倡议的博客系列的另一集&#xff0c;以及我们将Drools带入云的努力。 这些文章的目的是收集用户对我们提供给Kogito的功能的早期反馈。 在本文中&#xff0c;我们介绍了两种实现完整智能服务的新方法 &#xff1a; 独立的规则服务 集成智能工作流程和规则…

linux系统io查看计算,Linux下查看进程IO工具iopp

Linux下的IO检测工具最常用的是iostat&#xff0c;不过iostat只能查看到总的IO情况。如果要细看具体那一个程序点用的IO较高&#xff0c;可以使用iotop 。不过iotop对内核版本和Python版本有要求&#xff0c;虽然目前主流的CentOS和Ubuntu版本上都适用。不过考虑到其无法适用的…

java 并发锁_Java并发教程–锁定:内在锁

java 并发锁在之前的文章中&#xff0c;我们回顾了在不同线程之间共享数据的一些主要风险&#xff08;例如原子性和可见性 &#xff09;以及如何设计类以安全地共享&#xff08; 线程安全的设计 &#xff09;。 但是&#xff0c;在许多情况下&#xff0c;我们将需要共享可变数据…

linux 命令 ppt,Linux基本命令()讲解.ppt

第2章 Linux 基本命令 2.1 系统管理命令 在 Linux/UNIX 操作系统中&#xff0c;所有事物都被当作文件来处理&#xff1a;硬件设备(包括键盘和终端)、目录、命令本身&#xff0c;当然还有文件。 实际上是 Linux/UNIX 的能力和灵活性的基础。Linux操作系统命令分为文件管理、文件…

Java14:使用Java 14的新记录联接数据库表

您是否知道可以使用Java 14的预览记录功能将数据库表连接到Java Stream中&#xff1f; 阅读这篇简短的文章&#xff0c;并了解如何使用Speedment Stream ORM完成它。 我们将从如何设置您的项目开始。 设定 下载Java 14 。 转到Speedment Initializer并下载您的项目骨架&#x…