selenium自动化测试_为什么在生产中进行Selenium自动化测试对于您的下一个版本至关重要?...

selenium自动化测试

您是否认为仅仅是因为您的Web应用程序在过渡环境中以飞快的速度通过,它对于生产环境也将是相同的? 您可能需要重新考虑!
特别是,如果我们指的是跨浏览器测试 ,则需要确保跨各种操作系统,运行在不同操作系统上的各种浏览器,浏览器版本无缝呈现Web应用程序。 毕竟,在您实际进行生产测试之前,您可能永远都不知道客户会面临哪些错误,对吗?

但是,说起来容易做起来难。 作为敏捷测试人员,您每两个月,每周甚至每天都会收到新的测试要求。 如果您仅专注于生产中的测试,那么谁将负责舞台环境中的测试? 这就是为什么要求您在生产环境中以及过渡环境中进行测试的原因。 从经验中,我知道如果手动完成,这可能是一个艰苦而艰巨的旅程。 幸运的是,我们拥有Selenium测试自动化来支持我们。 怎么样?

这正是我将在今天的文章中讨论的内容。 本文将帮助您了解为什么生产中的Selenium测试自动化对于您的下一个版本至关重要!

那么,什么是生产测试(TiP)?

如果您刚刚开始测试人员的旅程,那么很有可能您可能不知道SDLC(软件开发生命周期),并且可能会对生产是什么感到好奇。 我们在生产中要测试什么?

嗯,每个Web应用程序都在不同的环境中克隆。 一种用于开发人员,一种用于测试人员,另一种用于您的客户。 与客户交互的Web应用程序称为生产环境,而其他应用程序称为暂存环境。 因此,每当新的增强功能进入发布周期时,便会首先将其部署在属于开发人员的阶段环境中,以便他们可以对更改进行单元测试。 确认更改后,将更改推送到测试人员所属的暂存环境中,他们可以在其中执行详细的集成和回归测试以验证代码更改。 一旦测试团队通过了签字,更改就会进入生产环境的队列,您的客户可以在其中使用添加到Web应用程序中的最新功能。

尽管测试团队在登台环境中进行了详细的测试,但是一旦将更改推送到生产环境中,他们就应该执行另一轮详细的测试,以确保不会妨碍客户的用户体验。 最后一轮测试称为生产测试。

我们在生产中要测试什么?

几乎所有事物。 除了在登台环境中经过验证的测试脚本之外,生产中的测试还包括所有在生产环境之前无法识别或预测的测试用例。

但是您已经在舞台上进行了测试,那么为什么要在生产中进行测试?

您可以根据需要编写任意数量的案例,但这不足以复制实时生产环境。 重现客户数据或预测其行为并不容易。 别忘了,您的登台环境可能不会像生产环境那样暴露于实时流量中。 同样,如果您的暂存环境不是您生产的精确克隆(在大多数情况下是正确的!),那么很有可能在上线时可能错过跨浏览器不兼容CSS属性,或更糟糕的是,其中。

登台环境对您的组织失败的13个原因

这就是为什么在每个发布周期中都必须在生产环境中进行跨浏览器测试的原因。 但是,如果不是单调的话,要在数百种浏览器和操作系统上测试您的Web应用程序肯定会很累。 很多时候,由于通宵的热补丁导致紧急中断和时间不足,您甚至可能最终在第11小时执行浏览器兼容性测试 ,因此,您可能最终只进行了冒烟测试而不是回归测试。 好吧,如果真是这样,您几乎可以期待浏览器错误将以您的方式出现。

让我们以实时场景来更好地理解这一点。 您的DevOps团队已准备好将最新的代码更改部署到Web应用程序中的管道。 在最终将其投入生产环境之前,您需要在多个登台环境中对其进行测试。 在分阶段进行测试时,可以在所有主要的浏览器上进行测试,例如,去年推出了所有最新版本的Google Chrome,Mozilla Firefox和其他浏览器。 您进行了快速的烟雾测试,一切似乎都正常。 您的Web应用程序上线了,您只是坐下来放松一下,以为一切都已完成并完成。 这样日子就过去了!

您是否发现上述情况出了什么问题? 您猜对了! 您显然错过了旧版本的浏览器,现在旧版本的所有用户可能都疯了。 他们离开了您的Web应用程序,停机的数量猛增。

无需恐慌,我们已为您服务! (我们将成为您的Luke Skywalker的Yoda)

要解决此问题,您需要确保您已经准备好在零停机时间内在我们的在线Selenium Grid上执行Selenium测试自动化套件。 使用在线Selenium Grid在生产中执行自动浏览器测试可以帮助您清除维护内部Selenium Grid所花费的主要时间障碍,并跨不同的操作系统/设备/浏览器分别测试Web应用程序的功能。 这可以帮助您确保在生产中验证产品的跨浏览器兼容性。

长话短说,您不能忽视生产中的Selenium测试自动化。 话虽如此,让我们看看Selenium测试自动化在生产中的好处。

Selenium测试自动化在生产中的优势

到目前为止,我们知道在生产环境中测试Web应用程序是强制性的。 但是我们需要自动化吗? Selenium测试自动化的好处是什么,让我们看看。

日常监控

借助Selenium测试自动化的便利,不仅可以轻松测试您的Web应用程序,而且可以每天监控这些测试的结果,变得相当容易。 LambdaTest提供了直观的仪表板,可帮助您通过我们的在线Selenium Grid分析Selenium测试自动化套件执行的结果。 您可以查看所有时间戳记以及各种日志,以帮助您快速调试Selenium测试脚本遇到的任何问题。

查找关键案例以确保强大的用户体验

Selenium测试自动化可以帮助您发现生产中的错误,然后才能影响任何访客或客户的用户体验。 由于复制实时用户案例场景和用户数据非常困难,因此在生产中进行测试有助于识别否则无法确定的独特测试案例。

在高峰时间安排Selenium测试自动化

生产环境中的Selenium测试自动化可以帮助您在Web应用程序的高峰时段安排一轮全面的自动浏览器测试。 从而有助于始终确保质量。

减轻回归测试的工作量

Selenium测试自动化可以帮助您消除回归测试周期中的麻烦。 这样,每次将新代码提交给您的产品时,您所需要做的就是运行Selenium测试脚本,所有内容将自动在不同的浏览器中进行验证。 那还不是全部! 利用Selenium测试自动化还可以使您更快地执行Beta程序,因此您可以立即获得有关新推出的功能和用户体验的反馈。

利用Selenium网格加快上市进程

与Selenium WebDriver不同,Selenium Grid可以帮助您并行执行测试自动化。 这对于大型和小型公司都至关重要。 每个发布周期都会为您的Web应用程序添加一些新内容,这意味着将有更多测试用例可以自动化。 最终,如果您依靠Selenium测试脚本执行顺序测试执行,就会遇到麻烦。 通过利用Selenium Grid,您可以并行运行任意数量的测试用例,从而可以大大减少测试周期的执行,从而加快上市速度。

如果生产中的测试很酷,那我们为什么还要犹豫?

现实情况是,在许多公司中,测试团队通常会在生产过程中犹豫甚至忽略测试。 其背后可能有多种原因。 一个是敏捷测试仪的寿命很苛刻,每周或每月他们的测试需求只会越来越大。 另一个原因是分阶段环境下的测试周期导致的消耗。 在测试了庞大的测试套件之后,在生产环境中测试相同的东西变得令人沮丧。 以及测试清单中的所有新内容。 因此,测试人员认为,如果可能出现重大问题,则以某种方式进行一次烟雾测试会更好,然后客户将以任何方式举报。

在生产中执行测试的策略

现在,我们已经完成了在生产中进行测试的重点。 接下来的问题是关于实现的问题!! 如何开始在生产中进行Selenium测试? 我可以使用哪种策略? 让我们进一步探讨在生产中执行测试的策略或方法。

蓝绿色部署

在此策略中,部署是在彼此相同的蓝色和绿色两个相似的生产环境中完成的。 在任何时候,只有一个环境处于活动状态,可以为所有生产提供服务。 在这种情况下,蓝色将获得所有生产流量,而绿色(蓝色的克隆)将保持闲置状态。 所有测试都在空闲状态(即绿色)下进行,一旦测试以绿色完成,所有流量都将路由到它,并成为新产品。

金丝雀测试

在金丝雀测试中,新功能仅向一小部分最终用户推出。 当确保Web应用程序在目标组中运行良好时,更改将被汇总到完整的流量中。

A / B测试

在A / B测试中,您向最终用户推出了两个不同版本的Web应用程序。 一个版本可以是旧版本,另一个版本可以是新推出的功能。 然后,在保留性能更好的版本的基础上,进一步分析哪个版本性能更好。

自动回滚策略

在这种策略中,只要发现故障,就可以将Web应用程序返回到先前的稳定版本,而您仍处于监视阶段。 正确实施后,回滚可以帮助您实现以前的稳定应用状态,但是实施不当会导致数据丢失。

生产中Selenium测试自动化的最佳实践

我知道您现在已经准备好使用加速器了,迫不及待想为您的生产环境编写Selenium测试自动化套件。 但是,作为生产环境中Selenium测试自动化的最佳实践,您需要注意一些提示。

查找正确的Selenium测试工具

选择正确的Selenium测试工具在成功实施测试策略中扮演着举足轻重的角色,因此使之成败。 正确的测试工具以及有效的DevOps流程可以确保从开发到生产的每个阶段都能平稳运行。 召集所有利益相关者并向他们解释生产测试的必要性将至关重要。 诸如LambdaTest之类的Selenium测试工具不仅可以帮助您在超过2000种真实的浏览器上测试Web应用程序。 它还有助于与众多用于CI / CD,项目管理,即时消息,无代码自动化等的第三方工具集成。

建立监控流程

仅仅因为您已经部署了自动化策略,并不意味着您就可以坐下来放松一下。 即使正确实施了策略和测试方法,也总是会错失一些错误。 您需要持续监控生产中的测试结果。

密切关注您的Web应用程序如何响应高流量以及服务器和数据库性能。 对应用程序的有效监视可以使您更深入地了解产品,并帮助识别和缓解不时出现的任何重大错误和问题。

确保主动警报机制

万一生产环境中出现问题,请确保在Selenium测试自动化过程中配置了通知或警报系统。 利用詹金斯(Jenkins)等CI / CD工具,该工具可以在发现问题后立即提醒合适的人员,您可以尽快找到并解决问题。 如果没有这种自动化,错误和缺陷可能会被忽略,并妨碍您的用户体验。

使用功能标记

通过使用功能标志,可以使用if / then语句包装功能。 通过隔离功能对系统的影响,您可以对功能进行更多控制,从而可以独立于部署来打开/关闭功能。 这将功能推出与代码部署分开。

一旦使用功能部件标志部署了新代码,就可以在实时环境中随时根据需要测试功能部件。 这使您可以更好地控制该功能及其对代码的影响。

合并POM(页面对象模型)

页面对象模型通常忽略了它,这对于生产中的Selenium测试自动化是必需的。 您需要使用页面对象模型,以便将所有UI元素定位器存储在一个位置,这使WebDriver可以更轻松地利用Selenium定位器 。

为BDD合并小Cucumber

测试人员常常忽略诸如Gherkin之类的语言解析器,因为他们认为单独编写逻辑比编写代码要简单得多。 但是,这对于参与该过程的非编程涉众可能非常有帮助。 他们可以评估Selenium测试自动化脚本如何影响整体系统验证。

始终有执行版本回滚的选项

确保通过更好的稳定性和恢复测试防止任何重大问题。 确保Web应用程序可以从不确定的事件中恢复,而不会丢失任何重要功能和关键数据。 如果任何新推出的功能会影响旧功能,则需要确保可以有效地将其回滚而不会丢失数据。

总而言之

生产中测试的主要议程是确保Web应用程序在实时环境中稳定。 为了避免中断,您需要使测试脚本自动化,以确保在所有最新的和旧版浏览器中都对Web应用程序进行了尝试和测试。 Selenium网格是实现此目标的好方法。 使用Selenium Grid,您可以跨所有浏览器自动执行测试脚本。 它不仅可以帮助您自动化重复的测试用例,还可以帮助我们并行执行它们。 最终,减少测试周期内的总体时间消耗。 万一发生问题,请确保您可以选择回滚到Web应用程序的先前部署版本。 祝您测试愉快! 🙂

翻译自: https://www.javacodegeeks.com/2020/03/why-selenium-automation-testing-in-production-is-pivotal-for-your-next-release.html

selenium自动化测试

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

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

相关文章

java.lang.ExceptionInInitializerError的原因

【0】README 0.1)本文转自 http://blog.csdn.net/fykhlp/article/details/6236316; 【1】正文如下 这个错误是说变量初始化出现问题,通常出现在静态变量尤其是单例模式。这种问题往往是初始化顺序不对造成的,下面举个简单的例子。…

漫画:Bitmap算法 整合版

转载自 玻璃猫 程序员小灰两个月之前——为满足用户标签的统计需求,小灰利用Mysql设计了如下的表结构,每一个维度的标签都对应着Mysql表的一列:要想统计所有90后的程序员该怎么做呢?用一条求交集的SQL语句即可:Select…

tomcat(3)连接器

【0】README0.1)本文部分内容转自“深入剖析tomcat”,旨在学习 tomcat(3)连接器 的基础知识;0.2)Catalina 中有两个主要的模块:连接器(ServerSocket) 和 容器(Servlet容器&#xff0…

java正则表达式验证_如何在Java中验证电话号码(正则表达式+ Google libphonenumber)...

java正则表达式验证关于如何在不同国家(例如美国,美国)使用Java验证电话号码的快速指南。 带有正则表达式和Google libphonenumber API的示例程序。 1.简介 在本教程中,我们将学习如何在java中验证电话号码 。 这主要是为了验证美…

漫画:什么是B-树

转载自 玻璃猫 程序员小灰 本文提到的「B-树」,就是「B树」,都是 B-tree 的翻译,里面不是减号-,是连接符-。因为有人把 B-tree 翻成 「B-树」,让人以为「B树」和「B-树」是两种树,实际上两者就是同一种树。…

tomcat(4)Tomcat的默认连接器

【0】README0.0)本文部分文字描述转自:“深入剖析tomcat”,旨在学习 tomat(4)Tomat的默认连接器 的基础知识;0.1)Tomcat中的连接器是一个独立的模块,可以插入到servlet容器中,而且还有很多连接器…

kafka mirror_SSL Kafka经纪人从Kafka Mirror Maker迁移到Brooklin的挑战

kafka mirror问题 从卡夫卡镜子制造商转移到布鲁克林有我在这里所写的优势。 但是,进行这种迁移并不容易,因为它本来应该如此。 我面临的主要挑战是:在消费者Kafka经纪人和Brooklin之间建立SSL连接 解 SSL问题 事实证明,这个问题…

漫画:什么是B+树

转载自 玻璃猫 程序员小灰这一次我们来介绍 B 树。一个m阶的B树具有如下几个特征&#xff1a; 1.根结点至少有两个子女。 2.每个中间节点都包含k-1个元素和k个孩子&#xff0c;其中 m/2 < k < m 3.每一个叶子节点都包含k-1个元素&#xff0c;其中 m/2 < k < m 4.所…

drools 规则流_约束流–没有Drools规则语言的现代Java约束

drools 规则流传统上&#xff0c;要使用OptaPlanner进行扩展&#xff0c;您必须学习DRL。 不再。 借助受Java 8 Streams和SQL启发的新Constraints Streams API&#xff0c;您现在可以用Java &#xff08;或Kotlin或Scala&#xff09; 编写约束&#xff0c;并且仍然可以从增量计…

char类型和Unicode编码

【0】README0.1&#xff09;本文对 char类型和Unicode编码 的总结并不完整&#xff0c;仅供参考&#xff1b;0.2&#xff09;本文获取Unicode辅助字符的代码点的idea转自&#xff1a; http://blog.csdn.net/xujinsmile/article/details/8526387 &#xff0c; http://bbs.csdn.n…

漫画:什么是一致性哈希

转载自 玻璃猫 程序员小灰一年之前——未来两年内&#xff0c;系统预估的总订单数量可达一亿条左右。 按Mysql单表存储500万条记录来算&#xff0c;暂时不必分库&#xff0c;单库30个分表是比较合适的水平分表方案。 于是小灰设计了这样的分表逻辑&#xff1a; 订单表创建单库3…

小程序真机测试错误代码_测试不充分:知道您的代码是否真的可以投入生产的5种方法...

小程序真机测试错误代码当今的企业都在提高软件交付速度。 但是&#xff0c;发布周期较短时&#xff0c;通常会牺牲代码质量。 当今的DevOps和QA团队承受着防止代码缺陷进入生产的压力&#xff0c;但他们还需要管理空前的工作负载&#xff0c;并且需要比以往更少的时间和资源来…

tomcat(5)servlet容器

【0】README0.0&#xff09;本文部分文字描述转自&#xff1a;“深入剖析tomcat”&#xff0c;旨在学习 tomcat(5)servlet容器 的基础知识&#xff1b;0.1&#xff09;intro to servlet容器&#xff1a;servlet容器是用来处理请求servlet资源&#xff0c;并为web客户端填充resp…

漫画算法:如何判断链表有环

转载自 玻璃猫 程序员小灰 大四毕业前夕&#xff0c;计算机学院&#xff0c; 正在四处求职的小灰碰到了同系的学霸大黄…… 小灰边说边回忆着上周去面试的情形…… 有一个单向链表&#xff0c;链表当中有可能出现“环”&#xff0c;就像下图这样。如何用程序判断出这个链表是…

jdk 加密_使用JDK的密码流的加密怪癖(以及该怎么做)

jdk 加密在我们的日常工作中&#xff0c;我们经常遇到经常性的主题&#xff0c;即将数据&#xff08;例如文件&#xff09;从一个位置传输到另一个位置。 这听起来像是一个非常简单的任务&#xff0c;但让我们通过声明这些文件可能包含机密信息并可以通过非安全的通信渠道进行传…

tomcat(5)servlet容器(lastest version)

【0】README0.0&#xff09;本文部分文字描述转自&#xff1a;“深入剖析tomcat”&#xff0c;旨在学习 tomcat(5)servlet容器 的基础知识&#xff1b;0.1&#xff09;intro to servlet容器&#xff1a;servlet容器是用来处理请求servlet资源&#xff0c;并为web客户端填充resp…

漫画:什么是跳跃表

转载自 玻璃猫 程序员小灰这是发生在很多年以前的故事......几天以前......几天之后......拍卖行的商品总数量有几十万件&#xff0c;对应数据库商品表的几十万条记录。如果是按照商品名称精确查询还好办&#xff0c;可以直接从数据库查出来&#xff0c;最多也就上百条记录。如…

带有Prometheus的弹簧靴和Micrometer第5部分:旋转Prometheus

以前&#xff0c;我们获得了Spring Boot Application适配器&#xff0c;以便为Prometheus公开端点。 该博客将重点介绍如何设置和配置Prometheus&#xff0c;以便为Spring Boot端点提供服务器。 因此&#xff0c;让我们开始使用docker来启动Prometheus服务器。 在继续进行Pr…

漫画:什么是动态规划?(整合版)

转载自 玻璃猫 程序员小灰 ———————————— 题目&#xff1a; 有一座高度是10级台阶的楼梯&#xff0c;从下往上走&#xff0c;每跨一步只能向上1级或者2级台阶。要求用程序来求出一共有多少种走法。 比如&#xff0c;每次走1级台阶&#xff0c;一共走10步&#xff…

tomcat(6)生命周期

【0】README0.1&#xff09;本文部分文字描述转自“深入剖析tomcat”&#xff0c;旨在学习 “tomcat生命周期” 的基础知识&#xff1b;0.2&#xff09;for source code, please visit https://github.com/pacosonTang/HowTomcatWorks/tree/master/chapter6 0.3&#xff09;温…