百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 编程字典 > 正文

重要提醒:别让你的UI自动化测试技术落后别人一个时代

toyiye 2024-06-24 19:17 11 浏览 0 评论

  UI自动化技术,是我们测试工程师绕不开的一个话题,只要提起它来,基本所有测试工程师都能给你说道说道。

  有些人认为它很难,有些人认为它很简单。

  认为它很难的人会告诉你,UI自动化非常不稳定,太难了,实用性也不大,想真正做好难于登天。

  认为它简单的人会告诉你,UI自动化太简单了,十分钟就能入门,不就是写写脚本么,driver.find_element_by_id() 就完事了。

  热饭觉得其实这两种观点都片面了,都是对UI自动化的不了解造成的误会。真正的UI自动化需要细分,因为它有不同的阶段,各个阶段的也都有自己的特点。

  文章开头先给大家明确一个业内普遍认同的观点:目前行业内的UI自动化已经形成了4个阶段。当前国内互联网公司中能用得起来UI自动化的不多,且大部分都集中在1-2阶段。 如果你的公司也在第2阶段以下,那可真的要加油了。

  下面热饭就给大家简单地概括一下这四个阶段吧~

  1.【录制回放】

  可能大家第一次接触自动化的时候,前辈或者老师就告诉了你,ui自动化是可以录制的。比如web自动化可以用firfox浏览器的selenium ide来录制成各种语言的selenium脚本,然后执行这个脚本,浏览器就会执行你刚刚所做的一切操作。

  还有loadrunner/badboy/QaRun/SNMP Tester等等一大堆工具,你这时候会想:原来自动化测试,so easy。

  【优点】:上手难度低,不用懂什么代码,自动生成脚本的非常简单迅速。

  【缺点】:这种脚本对环境的依赖性太强了,ui层稍微变化一点点,整个脚本就失效了。甚至很多web页面中的元素的id都是动态的(每次打开都不一样),所以导致这种脚本生成后连一次都走不通。而如想改起来的成本甚至高于自己动手重新写一个脚本了。从维护成本来说的话,这种脚本属于一次性的东西,不值得维护。

  【总结】:这种方式从笔者刚接触自动化的时候,就已经淘汰了,无论是老师还是业界大神,都直言做自动化就不要碰录制回放,这完全是在走弯路。所以如果你的公司是这种,那么就到了你大显神威进军下一阶段的时刻了!

  2.【手动脚本】

  到了这个阶段,公司的测试团队会有一部分专门做自动化的测试人员,他们负责手动去写脚本,相信大家对这个阶段都非常熟悉,因为绝大部分有ui自动化的公司都处于这个阶段。各个端都有自己专门负责自动化的工程师,他们所用的语言,技术可能相同也可能不同,要比喻的话,就是八仙过海各显神通。这时你会想:这就是少林寺的厨房么?太壮观了,简直大神的聚集地!

  【优点】:手动写的脚本质量远超第一阶段的录制脚本,可维护性大大增强,应对ui层的变化也有了一定抵抗力,优秀的会采用非线性脚本,融入数据驱动/关键字驱动/page-object等设计。

  【缺点】:众自动化大佬的力量不能形成一股绳,各种轮子各种造,技术和语言都无法统一,而且人与人之间的水平不同,导致脚本质量也相差很多。最后一旦有人离职,新人大概率只能推倒重来,一切归零。

  【总结】:简单来说就是各玩各的,有人滥竽充数,有人浑水摸鱼,有人独领风骚,有人自娱自乐。领导不可能同时精通多端多种技术栈多语言的自动化来明察秋毫,所以这个阶段的后期大多是放养的状态,最后没有形成可量化的战斗力,惨遭领导嫌弃和淘汰。如果你身处这种阶段,请一定不要被眼前的场景迷惑,要小心并且立即潜心修炼,争取统一ui自动化,把散兵游勇集合起来,好一起迈向下一个阶段。

......

※※因原作者要求,文章仅显示其中一部分,完整文章下载阅读,可以直接:关注+私信“文章”即可


文末福利——性能测试实战训练营:

性能测试可以说是所有自动化测试技术中涉及技术面最广、难度也最大的一个领域。

1、之所以说其涉及的知识面最广,是指性能测试不只是涉及到测试环节、同时还涉及到数据库、代码、网络、硬件、架构设计等多个领域。所谓难度最大是因为性能测试关注的测试类型非常多,除了我们常听说的压力测试、负载测试之外,还有容量测试、基准测试、可靠性测试、配置测试等等。

2、性能测试的指标也比普通的功能测试关注的验证点要多很多,有用户最关心的响应时间、错误率,还有企业最关心的服务器硬件资源利用率,以及工程师们关心的网络吞吐量、上传下载速率、TPS、HPS等等。而且性能故障的定位和调优不能只是依赖于性能测试工程师,必须要有团队的协作和配合才能够完成复杂的整体调优工作。

因为后台留言问性能测试的朋友很多,所以我们特地为大家开展了一次训练营:

此次训练营通过具体的性能测试项目实战,让大家快速体验到性能测试工作的基本工作流程,性能测试工具的使用以及性能测试工作过程中常见问题的解决思路及实践。通过训练营达到以下实践目标:

1、如何进行性能测试的准确规划?很多人对性能测试都有很多的误区理解,如果我们最初关于性能测试的目的理解有偏差或不准确的话,那么即使有很高深的技术也会造成工作的南辕北辙。

2、性能测试工作总体流程如何把控?在前期如何进行性能测试点的分析?如何落实到性能测试用例中进行明确?通过具体的性能测试任务进行前期准备工作的实践。

3、使用Jmeter工具快速开展性能测试执行。很多同学对于工具的掌握和学习往往需要很长时间才能上手,如何快速高效的掌握工具,快速地应用于具体工作中,这方面有很多的技巧和方法,与大家进行分享交流。

4、性能测试工作问题分析和解决。所有的工作都不会是一蹴而就的,在工作中会遇到各种各样的问题。如何进行动态验证码的验证,如何进行关联处理?这些都是性能测试中常见的技术问题,此次训练营和大家一同来快速分析解决这几个方面的技术问题,让大家在分析问题,思考问题的过程中,提升解决问题的能力。

5、性能测试工作需要具备哪些方面的能力,应该如何提升我们这方面的能力呢?帮助大家了解性能测试的工作全局,对性能测试有一个初步全局的认识。

为了保证课程训练营的内容质量,本次课程我们只限量开放200个名额,目前已报名100人。

参与方式:请关注+私信回复:“训练营”,获取本次Python接口自动化具体项目实战课程,参与人数众多,名额有限。

相关推荐

为何越来越多的编程语言使用JSON(为什么编程)

JSON是JavascriptObjectNotation的缩写,意思是Javascript对象表示法,是一种易于人类阅读和对编程友好的文本数据传递方法,是JavaScript语言规范定义的一个子...

何时在数据库中使用 JSON(数据库用json格式存储)

在本文中,您将了解何时应考虑将JSON数据类型添加到表中以及何时应避免使用它们。每天?分享?最新?软件?开发?,Devops,敏捷?,测试?以及?项目?管理?最新?,最热门?的?文章?,每天?花?...

MySQL 从零开始:05 数据类型(mysql数据类型有哪些,并举例)

前面的讲解中已经接触到了表的创建,表的创建是对字段的声明,比如:上述语句声明了字段的名称、类型、所占空间、默认值和是否可以为空等信息。其中的int、varchar、char和decimal都...

JSON对象花样进阶(json格式对象)

一、引言在现代Web开发中,JSON(JavaScriptObjectNotation)已经成为数据交换的标准格式。无论是从前端向后端发送数据,还是从后端接收数据,JSON都是不可或缺的一部分。...

深入理解 JSON 和 Form-data(json和formdata提交区别)

在讨论现代网络开发与API设计的语境下,理解客户端和服务器间如何有效且可靠地交换数据变得尤为关键。这里,特别值得关注的是两种主流数据格式:...

JSON 语法(json 语法 priority)

JSON语法是JavaScript语法的子集。JSON语法规则JSON语法是JavaScript对象表示法语法的子集。数据在名称/值对中数据由逗号分隔花括号保存对象方括号保存数组JS...

JSON语法详解(json的语法规则)

JSON语法规则JSON语法是JavaScript对象表示法语法的子集。数据在名称/值对中数据由逗号分隔大括号保存对象中括号保存数组注意:json的key是字符串,且必须是双引号,不能是单引号...

MySQL JSON数据类型操作(mysql的json)

概述mysql自5.7.8版本开始,就支持了json结构的数据存储和查询,这表明了mysql也在不断的学习和增加nosql数据库的有点。但mysql毕竟是关系型数据库,在处理json这种非结构化的数据...

JSON的数据模式(json数据格式示例)

像XML模式一样,JSON数据格式也有Schema,这是一个基于JSON格式的规范。JSON模式也以JSON格式编写。它用于验证JSON数据。JSON模式示例以下代码显示了基本的JSON模式。{"...

前端学习——JSON格式详解(后端json格式)

JSON(JavaScriptObjectNotation)是一种轻量级的数据交换格式。易于人阅读和编写。同时也易于机器解析和生成。它基于JavaScriptProgrammingLa...

什么是 JSON:详解 JSON 及其优势(什么叫json)

现在程序员还有谁不知道JSON吗?无论对于前端还是后端,JSON都是一种常见的数据格式。那么JSON到底是什么呢?JSON的定义...

PostgreSQL JSON 类型:处理结构化数据

PostgreSQL提供JSON类型,以存储结构化数据。JSON是一种开放的数据格式,可用于存储各种类型的值。什么是JSON类型?JSON类型表示JSON(JavaScriptO...

JavaScript:JSON、三种包装类(javascript 包)

JOSN:我们希望可以将一个对象在不同的语言中进行传递,以达到通信的目的,最佳方式就是将一个对象转换为字符串的形式JSON(JavaScriptObjectNotation)-JS的对象表示法...

Python数据分析 只要1分钟 教你玩转JSON 全程干货

Json简介:Json,全名JavaScriptObjectNotation,JSON(JavaScriptObjectNotation(记号、标记))是一种轻量级的数据交换格式。它基于J...

比较一下JSON与XML两种数据格式?(json和xml哪个好)

JSON(JavaScriptObjectNotation)和XML(eXtensibleMarkupLanguage)是在日常开发中比较常用的两种数据格式,它们主要的作用就是用来进行数据的传...

取消回复欢迎 发表评论:

请填写验证码