小心!做 UI 彩38源码自动化一定要跨过这些坑

图一 UI自动化常见问题联系方式:QQ:2747044651 网址http://zhengtuwl.com

填掉这三类坑,基本上就获得了一套低成本高产出、少量维护、稳定可靠的UI自动化用例集。

三、 设计类问题分析与解决
“才刚写完用例,怎么开发大哥又改了UI了?”

“测试框架自己有bug,我改用例也没用啊……”

这类问题,我们需要从根上治。UI自动化开发,也应该是严谨的开发工作,它也需要设计模式,也是磨刀不误砍柴工。这里的设计,主要包括选工具、框架分层等。很多前辈都分析过UI自动化各类工具的优缺点,对工具选用笔者不再赘述。主要依托uiautomator来介绍下笔者认为比较巧妙的用例框架设计。

1 优化测试代码框架
无论你选择appium、uiautomator、robotium还是espresso,刚入门时,看到的sample应该大致都是这样的。

图二uiautomator和espresso逻辑样例

问题在哪里?这些sample过于简单,都只教了我们UI自动化三元素:怎么查找元素、怎么操作元素、怎么校验结果。如果我们按照大多数分享帖或GitHub sample来写作自己的case。最后这种没有任何设计模式的框架,肯定会面临重构。拿上面的espresso来说:

假如action_save这个id开发改了,而你的用例集中,有30个步骤用例到了这个id,一个个去改,是不是要疯?
不厌其烦的重复写onView(withXX(xxx)).perform(click())这一长串,你不烦?
笔者是如何做的?分层设计和PageObjects模式。这两个方法,基本解决了笔者遇到的图一中所有的设计类问题。

图三 框架设计建议

按照图三进行分层设计后,得到如图四的测试代码包。
测试同行面前一提起自动化,大家就会自然而然的问:“恩,你们是用的什么框架?appium?还是robotium?”

其实在笔者看来,UI自动化是一个ROI较低的测试项(ROI即return on investment,中文意思是投资回报率)。但UI自动化相比接口自动化、白盒测试等,它更贴近手工业务测试行为。对于刚起步测试左移、效率提升的团队来说,是最迅速的切入点,也是广大黑盒tester,提升自身技术能力的起跑线。

笔者接触UI自动化一年多,兼顾业务测试的同时断断续续地投入,曾经无数次的想放弃:

“才刚写完用例,怎么开发大哥又改了UI了?”

“维护这些破用例的时间,都够我手工测三遍了,真的有意义么?”

“测试框架自己有bug,我改用例也没用啊……”

“我调试的时候这个用例还是通的,放到daily里面跑就不通,到底怎么回事嘛!”

“adb怎么这么不稳定啊,老是断!!!”

“怎么跑着跑着就crash了,到底是被测应用有问题,还是测试代码有问题啊?”

“明明界面上有这个元素,怎么就是查不到呢?”

“这破手机,能不能别老是系统弹框……”

“这手机真是渣,adb screencap截个图,居然要三分钟才返回!”

“这些控件都没有id,没有text,层级还三天两头改,要我怎么查……”

“查了这么多论坛,怎么就没有人遇到过类似的问题呢?”

……

这些问题让笔者一度怀疑,UI自动化这个TOPIC,是不是根本没用,只是tester为了涨薪,或者为了摆脱重复无聊的手工业务测试,而YY出来自我欺骗的。

二、 问题分类及目标明确
笔者将以上所有的问题简单分成三类:设计类,环境类,细节类。一个好的设计模式,能够避免一部分问题;一套好的环境,可以让我们从乏味的维护工作中解脱;精益求精的细节,让测试用例更加可靠稳定。

原文地址:http://blog.51cto.com/13914443/2156319

时间: 2024-11-09 03:43:06

小心!做 UI 彩38源码自动化一定要跨过这些坑的相关文章

深入解析彩38源码搭建APP生成 整个APP开发标准流程

一般的APP开发及上线流程 步骤如下: 首先,制作一款APP,必须要有相关的idea(主意),也就是说,第一步是APP的idea(主意)形成. 其次,彩38源码搭建bbs.yasewl.com请添加链接描述就是通过那些idea来进行APP的主要功能设计以及大概界面构思和设计. App的开发是一个不断推敲的过程. 首先,如果要做一款app,必须要前期进行沟通,初步表明此款app要实现的效果,属于哪个类型的app.在功能和实现价值基本敲定的情况下,开始进入项目评估阶段.这个时候产品经理会根据之前商定

Python的字符串-彩38源码下载

由于计算机是美国人发明的,彩38源码下载(企 娥:217 1793 408)因此,最早只有127个字符被编码到计算机里,也就是大小写英文字母.数字和一些符号,这个编码表被称为ASCII编码,比如大写字母A的编码是65,小写字母z的编码是122. 但是要处理中文显然一个字节是不够的,至少需要两个字节,而且还不能和ASCII编码冲突,所以,中国制定了GB2312编码,用来把中文编进去. char-encoding-problem 因此,Unicode应运而生.Unicode把所有语言都统一到一套编码

彩38源码搭建与项目中遇到的bug

1.Redis服务器 can not get resource from pool.1000个线程并发还能跑,5000个线程的时候出现这种问题,彩38源码搭建QQ:2152876294 网址diguaym.com后台debug日志,发现redis 线程池不够.刚开始设置的是: redis 配置文件 #redisredis.host=127.0.0.1redis.port=6379redis.timeout=300 等待时间 10s改为300sredis.password=123456redis.

彩38源码下载与JAVA接口随笔

接口与类相似点:一个接口可以有多个方法.彩38源码下载QQ:2152876294 网址diguaym.com接口文件保存在 .java 结尾的文件中,文件名使用接口名.接口的字节码文件保存在 .class 结尾的文件中.接口相应的字节码文件必须在与包名称相匹配的目录结构中.接口与类的区别:接口不能用于实例化对象.接口没有构造方法.接口中所有的方法必须是抽象方法.接口不能包含成员变量,除了 static 和 final 变量.接口不是被类继承了,而是要被类实现.接口支持多继承.接口与类的区别:接口

后台管理系统效果图UI界面html源码后台源代码

后台管理系统效果图UI界面html源码后台源代码 亲注意,我们销售的网站模板或者网站代码.系统源代码,是网站开发者(程序员)才可能用到的模板或者代码. 网站模拟适用于做好网站前台又不太想在后台界面花太多时间构想.对传统管理界面审美疲劳的中小企业或个人建站者,因需自行套上ASP/ASP.NET/PHP等程序后使用,所以我们不建议没有专业知识基础的亲购买,不懂专业知识和不懂此为何物的请慎怕! 程序源代码,适用于开发者对于个别功能没有开发经验或者无从下手,可以参照或者直接使用的. ----------

【最讨厌那些不开源的】小米的米UI的BOTTOMVIEW源码完美反编译

其实原理就是WindowManager Dialog 和Animation的组合 这里分享一个Android的非常经典实用而且简单方便的第三方UI控件库:BottomView(小米的米UI也用到了这个) 实现功能: 可以在底部弹出的View里自定义布局: 可以自定义是否可以触摸外部消失: 可以自定义事件: 可以自定义外围背景是否透明: 可以自定义动画: 如果需要的话,可以强制为顶部View显示 用法: 1.下载BottomView.jar库文件,放到Android项目工程里的libs里 2.设置

动手做广西快乐十分源码下载的核心之http解析

webserver往小里说核心功能就是socket管理.url处理.http协议处理.业务dll管理等:下面简介绍一下http协议:超文本传输协议(HTTP)是一种通信协议,当时就是为web传输设计的一个基于tcp的协议:基于这个字面上理解,可以简单的点说就是用tcp来传输文本.数据的一种编解码格式.传输协议一般比如说定个长度+内容,或者以回车符作为结尾等方式.http协议是文本传输协议,所以也是采用回车符来结尾的方式来实现编码传输解析的: 这里使用分析工具来简单分析一下http的基本格式: 从

android源码大放送(实战开发必备),免费安卓demo源码,例子大全文件详细列表

免费安卓demo源码,例子大全文件详细列表 本列表源码永久免费下载地址:http://www.jiandaima.com/blog/android-demo 卷 yunpan 的文件夹 PATH 列表 卷序列号为 0000-73EC E:. │ jiandaima.com文件列表生成.bat │ 例子大全说明.txt │ 本例子永久更新地址~.url │ 目录列表2016.03.10更新.txt │ ├─前台界面 │ ├─3D标签云卡片热门 │ │ Android TagCloudView云标签

ym——android源码大放送(实战开发必备)

文件夹 PATH 列表 卷序列号为 000A-8F50 E:. │  javaapk.com文件列表生成工具.bat │  使用说明.txt │  免费下载更多源码.url │  目录列表.txt │ ├─android web应用 │      jqmDemo_static.zip │      jqmMobileDemo-master.zip │      jqmMobileDemo1_1-master.zip │      Location1014.rar │ ├─anko │