关于APP自动化工程的一点小想法
首先谈一下APP自动化测试面临的一些局限性?
答:测试业务的不明确性,APP逻辑复杂,界面的跳转变化随时间变化。
测试本身的不确定性,如不定时弹窗问题。
测试环境不稳定性,主要是网络的稳定性。
测试接口的局限性,以功能强大的UiAutomator(不考虑Appium)为例。非标准控件无法捕捉,Web界面无法抓取,中文输入(可以用UTF-7输入法来实现)。
PC和测试Devices间ADB连接的不稳定性。
APP自动化控制工程架构的选择问题?
答:(1) 测试粒度的选择,粒度选择为较小的单步操作,则会造成测试步骤冗长,维护复杂,但也会使得测试过程清晰明了;如果选择一系列有特定意义的操作为粒度,
好处是可以通过方法调用实现代码复用,缺点是一个地方出错则会影响所有相关的测试,对测试脚本的稳定健壮性要求很高。
(2) 是否需要自己写一套简单的测试管理控制架构,首先写一套简单的这个东西是不会费很多代价的。首先编写新的测试执行控工程,建议使用Json文件配置执行
方式,根据DeviceID实现多机器并行测试。如果不想自己写,建议使用Robot Framework,其支持IDE和Shell两种启动执行方式。
(3) 控制工程架构的报告模块,建议采用Html样式的测试报告。报告对测试执行的细节要有很好的体现,对测试失败的节点要很明显体现,对LOG亦要有很好的保
存,同样报告也要做到简单明了。
APP自动化工程部署?
答: 建议使用开源的Jenkins部署测试项目,具体就不细说了。
APP自动化工程的稳定性很大依赖于测试脚本的稳定性,而APP脚本的稳定性依赖于脚本的编写和自动化测试用例的设计。
自动化测试脚本的编写稳定性,依赖于统一的严正的编写标准和严密的测试逻辑。
自动化测试用力的设计,建议由有自动化脚本编写经验的同学来设计,以提高自动化测试用例的设计质量,提升自动化测试脚本开发速度和开发质量。
关于APP自动化工程的一点小想法的更多相关文章
- 对MySQL数据量日益增长产生的一点小想法
最近一直在想一个问题 MySQL数据量日益庞大,目前单表总记录数有 300W+,导致sql语句执行的速度变慢,如果一直这样增长下去,总有一天会爆炸的.怎么办??怎么办?? 第一:想到的必然是 添加索引 ...
- 关于变长数组的一点小想法-C语言定义数组但是数组长度不确定怎么办
很多数据机构,比如栈,链表等,都可以动态分配存储空间 那么数组呢?一般声明时都要指定数组长度,那么数组可以实现动态分配么? 假设数组存的是int型 那么 你先申请10个元素 int* a = (int ...
- 我对android开发的一点小感悟小看法
“Android”,“Android开发”等等这些词成了时下最热的词,也是时下大众最关注最吸引人眼球的话题,当然,最热门的行业也意味着高薪,好的就业环境,但同时也意味着强大的竞争力! Android系 ...
- 关于win8开发的一点小总结
我今天做画面的时候,发现了一点小问题. 我在xmal文件里面加了一个CheckBox控件,设置IsChecked属性为True,并添加了Checked事件.Checked事件里面有对另外一个TextB ...
- 关于PHP魔术方法__call的一点小发现
好久没有上博客园写文章了,今晚终于有点空了,就来写一下昨天的一点小发现. 我自己所知,C++,Java的面向对象都有多态的特点,而PHP没有,但PHP可以通过继承链方法的重写来实现多态的属性.而魔术方 ...
- android上instant app介绍 类似于微信小程序
android上instant app介绍 类似于微信小程序instant app 是谷歌推出的类似于微信小程序(或者说小程序类似于instant app)的一项技术,用户无须安装应用,用完就走,同时 ...
- net core体系-web应用程序-4net core2.0大白话带你入门-8asp.net core 内置DI容器(DependencyInjection,控制翻转)的一点小理解
asp.net core 内置DI容器的一点小理解 DI容器本质上是一个工厂,负责提供向它请求的类型的实例. .net core内置了一个轻量级的DI容器,方便开发人员面向接口编程和依赖倒置(IO ...
- C与C++在形參的一点小差别
先看一下以下的代码: int fun(a,b) int a; int b; { return 10; } void main(int argc, char ** argv) { fun(10); re ...
- BUI Webapp用于项目中的一点小心得
接触BUI也有一段时间,也用在了移动端的项目开发中,总的来说,该框架用起来也挺灵活的,控件可以自由定制,前提是自己能认真地学习该框架的api,因为api里面说的东西比较详细,如果没有仔细看的,可能有些 ...
随机推荐
- C#模拟POST登录cnblogs并发布文章
用到的工具FireFox的Firebugs插件 打开网络功能进行抓包 数据如下 可以得知POST的数据为: __EVENTTARGET=&__EVENTARGUMENT=&__VIEW ...
- iOS的 context 和Android 中的 canvas
ios 想要绘图,要用到CGContextRef类.最基本的用法是在- (void)drawRect:(CGRect)rect 函数中绘制. Android 中要用到Canvas类.最基本的用法是在 ...
- Android drawable的自动缩放
今天在写程序时发现,一张图片被自动放大了,后来发现,这张图片放在了drawable-zh文件夹下,这个文件夹没有指定屏幕密度!于是将drawable-zh改为drawable-zh-nodpi,问题解 ...
- css form 表单组对齐
2014年7月1日 15:31:17 第一次写css,见谅 css: .form-box .form-group .form-label {text-align: right; width: 200p ...
- 获取Assets目录下的图片显示并上传
package com.jingle.getlocal; import java.io.ByteArrayOutputStream; import java.io.InputStream; impor ...
- hadoop中常见元素的解释
secondarynamenode 图: secondarynamenode根据文件的的大小对namenode的编辑日志和镜像日志 进行合并. 光从字面上来理解,很容易让一些初学者先入为主的认为:Se ...
- linux shell的切换
查看系统可用shell种类:(一般是bash shell) ➜ ~ chsh -l /bin/sh /bin/bash /sbin/nologin /bin/dash /bin/zsh 修改当前的sh ...
- MVC学习笔记---MVC生命周期及管道
ASP.NET和ASP.NET MVC的HttpApplication请求处理管道有共同的部分和不同之处,本系列将体验ASP.NET MVC请求处理管道生命周期的19个关键环节. ①以IIS6.0为例 ...
- Redis笔记(三)Redis的数据类型
前面说过,Redis的一大特性是支持丰富的数据类型, 这为更多的应用场景提供了可能. Redis有五种数据类型,包括string,list,set,sorted set和hash,注意,Redis的数 ...
- 菜鸟学Linux命令:tail命令 查看日志
tail 命令用于显示指定文件末尾内容,不指定文件时,作为输入信息进行处理. tail命令常用来查看日志文件.使用tail命令的-f选项可以方便的查阅正在改变的日志文件,tail -f filenam ...