1月 14

IOS命令行打包&静态代码检查

敏捷开发中,从代码到打包,到静态检查,到单测,到接口测试,再到页面测试,应该是个完整的流程,ios虽然是闭源,也可以使用工具实现这一过程,下面简单记录下打包和静态代码检查的方法。

打包

ios命令行打包,无非就是两条命令xcodebuildxcrun,不过因为苹果对签名和权限控制的比较严格,需要开发者账号才能搞定。 继续阅读

1月 14

Robotium 用例分组运行

Robotium是开源的Android界面自动化测试的框架,它内部集成了junit,以test开头的方法,会自动识别成测试用例,这样做带来快捷的同时,却也带来了不便。如果我们要分功能、分模块等,Robotium不支持自定义的testsuite。在这里我们可以用adb shell am instrument这条命令来实现分组。 继续阅读

10月 14

Roboitum中加入失败重跑机制

Roboitum中加入失败重跑机制

Robotium是个开源的android功能测试自动化框架,比较流行。我平时使用robotium+maven+spoon,这样的组合做androd自动化。做界面自动化,尤其是移动端,case经常失败,网络问题、等待机制不合理、手机问题等等。一个case失败后,再次运行可能又正常了,这种情况很多。其实我们在使用Robotium时,可以手动实现case失败后,重跑几次,如果几次都失败了,那么case才判定为失败。 继续阅读

3月 03

Android兼容性测试工具Spoon

android分布式测试工具。

简介

android众多的版本和机型给android app测试工作带来不小的挑战。Spoon通过将case分布式地执行、将执行结果更友好地展示出来,从而简化android app的测试工作。

Spoon没有开发新的测试框架,而是让已经存在的测试框架更有效。现在的测试框架,一般都是通过测试apk来驱动被测apk,Spoon可以让这些case在多台设备上同时运行。一旦测试结束,Spoon就是生成一份html报表,来展示每台设备上的执行结果。

Spoon会检测到adb devices命令中显示的全部设备,并在这些设备上执行case。所以我们在使用spoon时,可以插入不同的手机、平板、或者不同配置的模拟器。 继续阅读

2月 26

Robolectric进行Android单元测试

测试驱动android开发

在安卓模拟器或者真机上跑测试用例速度很慢。构建、部署、启动app,通常需要花费一分钟或者更久。这不是TDD(测试驱动开发)模式.Robolectric提供一种更好的方式。

可能你一直尝试在java IDE中使用junit或者testng直接跑测试用例,但是一直报java.lang.RuntimeException: Stub!异常。

这个异常是因为在jdk中没有android运行环境。而现在Robolectric这款android单元测试工具,模拟了android sdk中的jar包,可以直接在jvm中运行测试用例,这样就大大节省了时间。一个Robolectric测试用例如下: 继续阅读

1月 15

IOS Monkey测试UI AutoMonkey

UI AutoMonkey

UI AUtoMonkey是一款非常简单的IOS压力测试工具。通过它,你可以向ios设备发送滑动、拖动、旋转、甚至锁屏和解锁指令。原文github地址:https://github.com/jonathanpenn/ui-auto-monkey

安装

如果你的mac电脑已经安装了xcode,那么环境就已经ok了,xcode中已经自带了UI Automation和Instruments。跟着下面的步骤进行操作就可以使用UIAutomonkey.js这个js脚本,进行monkey测试。

  • 首先,使用xcode打开你的ios项目,从“Product”菜单中选择“Profile”(或者直接快捷键Command+i),这样就可以构建ios项目,并启动工具模板选择器。 继续阅读
10月 18

android-maven-plugin 点9图片问题


使用android-maven-plugin插件搭建android CI的时候,遇到点9图片报错问题,报错信息如下:

    ERROR: 9-patch image Project/res/drawable-  hdpi/input_03_mid.9.png malformed.
    [INFO]        Must have one-pixel frame that is either transparent or white.
    [INFO] ERROR: Failure processing PNG image Project/res/drawable-hdpi/input_03_mid.9.png

然后是报一堆资源找不到的错误。

项目在Eclipse、Idea等ide下编译、运行正常。 继续阅读

9月 12

DefaultHttpClient 使用GZIPInputStream解压缩


DefaultHttpClient 使用GZIPInputStream解压缩
当浏览器访问网站时,有可能浏览器返回的消息头中带有 Content-Encoding:gzip,表明服务器返回的消息经过gzip压缩,这么做是为了节省流量,浏览器拿到gzip压缩后的http包,对其进行解压缩,再渲染出来。在使用apache提供的DefaultHttpClient操作http请求时,可以使用GZIPInputStream对gzip压缩过的数据包进行解压缩。android sdk进行网络编程时,也可以使用这种方法。 继续阅读