UI自动化测试随笔

news/2024/7/5 9:02:19

昨天给开发的同事讲我们正在做的自动化测试,同事问了句:为什么API的测试不需要写代码了,而UI的测试还需要写那么多代码呢? 能不写代码么? 

目前我们的自动化测试的现状:

目前主要覆盖两个部分:API的测试和UI的测试。对于API的测试经过框架的封装,基本上只需要编写一个xml描述的test case就可以了,xml里描述了输入,调用和断言。框架就根据这个xml来测试具体的API,基本上(99%)不需要写代码了。而UI的测试在这方面框架封装的却比较少(力所能及的封装一些通用控件),更多的是制定一些分层的规范。

 

我当时回答:

因为API的输入和输出比较明确,而且目前的API的测试还仅仅是关注在单个API上,而UI这方面输入输出不明确,变化也较多,而且主要关注业务流程,用户场景。

同事又问:

API也会变化啊,UI也可以做到明确啊。

 

显然我的回答,同事并不满意。后来我也在思索,为什么UI测试就不能像API测试那样不写任何代码,只用一个类似xml的case文件描述一下即可呢?

下班回家在地铁里突然想到,其实对于UI来讲,UI上的每一个可输入的最小的可复用单元都算是一个“接口”,这个接口等价于API测试中的那个接口(REST, RPC等)。如果我们要给UI中的最小输入单元编写测试基本上是可以做到不写代码的(测试人员可以不写代码,由测试框架提供)。而复杂的UI其实也是这些最小接口组合而成的。通过将这些最小”接口“组合成大一些的”接口“,最后组合成页面级的”接口“,其实也可以做到不写程序代码测试UI。后来自己都笑了,这不就是Keyword Driven么。

联想到昨天吴老师 @吴穹 讲到:DSL不仅仅是针对某个领域的,每个项目也可以有自己的DSL。

那么如果我们能够在项目的前一两个迭代,利用Keyword Driven总结出这个项目的DSL,那么后面的测试的开发就会越来越快了啊。


http://lihuaxi.xjx100.cn/news/268981.html

相关文章

阿里公开招募鉴黄师,日薪1000元,还送硬盘和网盘会员?!

点击上方“视学算法”,选择加"星标"或“置顶”重磅干货,第一时间送达提到鉴黄师这个职业,相信大部分人的表现都是会心一笑。与其他传统职业相比,鉴黄师除了神秘以外还多了一层暧昧的色彩。对于很多男性小伙伴来说&#…

Git单人本地仓库操作

Git单人本地仓库操作 以下为演示Git单人本地仓库操作 1.安装git sudo apt-get install git密码:chuanzhi 2.查看git安装结果 git3.创建项目 在桌面创建test文件夹,表示是工作项目 Desktop/test/4.创建本地仓库 进入到test,并创建本…

IoU、GIoU、DIoU、CIoU损失函数的那点事儿

点击上方“小白学视觉”,选择加"星标"或“置顶”重磅干货,第一时间送达来自 | 知乎 作者 | Errorhttps://zhuanlan.zhihu.com/p/94799295仅作学术交流,如有侵权,请联系删文一、IOU(Intersection over Union)…

IOS使用正则表达式去掉html中的标签元素,获得纯文本

IOS使用正则表达式去掉html中的标签元素,获得纯文本 content是根据网址获得的网页源码字符串 NSRegularExpression *regularExpretion[NSRegularExpression regularExpressionWithPattern:"<[^>]*>|\n"options:0error:nil];content[regularExpretion string…

Android之传感器(一)

传感器的种类&#xff1a;1. 动作传感器加速度传感器、重力传感器和陀螺仪&#xff08;判断手机姿态&#xff09;等2. 位置传感器方向传感器和磁力传感器3. 环境传感器温度传感器 、压力传感器和亮度传感器 使用传感器的方法&#xff1a;1. 获取SensorManager对象SensorManage…

2020,AI创业与投资进入“深水区”

出品 | AI科技大本营&#xff08;rgznai100&#xff09;【导读】7 月 3-4 日&#xff0c;由 CSDN 主办的第三届 AI 开发者大会&#xff08;AI ProCon 2020&#xff09;在线上举行。本次大会有超万人报名参与&#xff0c;参与人群覆盖 60 领域、5000 家企业。其中有来自行业内 7…

java jni调用dll文件_Java通过jni调用动态链接库

(1)JNI简介JNI是Java Native Interface的缩写&#xff0c;它提供了若干的API实现了Java和其他语言的通信(主要是C&C)。从Java1.1开始&#xff0c;JNI标准成为java平台的一部分&#xff0c;它允许Java代码和其他语言写的代码进行交互。JNI一开始是为了本地已编译语言&#x…

最大流学习笔记(1)

1 流网络。流网络G(V,E)是一个有向图&#xff0c;每条边$(u,v)\in E$有一个非负容量值$c(u,v)\geq 0$.如果$(u,v)\notin E,c(u,v)0$.另外有一个源节点s和汇点t。 2 流。G中的流是一个实值函数$f:V\times V\rightarrow R$&#xff0c;满足&#xff1a; &#xff08;1&#xff09…