3月 16

Android 静态代码扫描规则

阻塞

  1. 不可能的转换
  2. 使用equals()方法比较类型不通的数组
  3. 硬编码了数据库密码
  4. 性能 – URL的equals 和 hashCode 方法会被堵塞 http://michaelscharf.blogspot.com/2006/11/javaneturlequals-and-hashcode-make.html
  5. 性能 – URL的Maps 和 sets可能是性能大问题
  6. 错误用法 – close()调用了一个永远是null的值
  7. 错误用法 – equals方法一直返回false或者true
  8. 错误用法 – null值一定会被调用
  9. 错误用法 – 一个已知的null值被检测它是否是一个类型的实例
  10. 错误用法 – 集合转换为数组元素时发生的类型转换错误

继续阅读

10月 16

Jmeter压测DNS服务器

背景

很多场景下,Jmeter都是用作HTTP服务的压测工具。其实,得益于插件,jmeter还有很多其他的功能。其中一条就是用来发送UDP消息,UDP是一种轻量级的网络协议,它的性能一般会很高。

最常用的UDP消息,估计就是dns请求了。DNS服务器的作用是将域名解析成ip地址。 继续阅读

8月 06

mysql主从配置、原理以及性能

最近各种的性能测试,其中有一项是mysql的性能测试,目的是测试一主多从的配比下,主库插入速度到达多少时,从库就会出现延时,这样来评估一些强依赖db写的接口的性能(其实最快的还是操作缓存,其实目前也有些公司的系统已经不直接操作db,全部用缓存,然后缓存在后台慢慢和db交互)。

分析mysql的binlog得到全部的insert语句,然后使用jmeter进行压测,得到的结论有下面几条:

  1. 线上的真机mysql服务器,内存60G,ssd硬盘,insert速度可以达到8000条/秒。
  2. 拓展从库几乎不影响主库的插入速度,平均插入时间为1毫秒
  3. 拓展从库,主库机器的网卡流量会增加,cpu、负载会上升,但不是很明显。
  4. 当插入速度在3800左右时,主从开始出现延时。

继续阅读

5月 12

jmeter命令行模式运行,实时获取压测结果

jmeter很小,很快,使用方便,可以在界面运行,可以命令行运行。简单介绍下命令行运行的方式:

    sh jmeter.sh  -n -t my-script.jmx -R 10.6.5.31,10.6.5.35,10.6.5.36,10.6.5.37,10.6.5.72 -l 8.jtl

上面一条命令应该可以满足大部分需求。

    -n:使用命令行模式运行
    -t:指定要运行的jmx脚本
    -R:指定使用那些slave节点压测
    -l:压测记录保存在哪里

使用-R指定节点时,当然要首先在这些节点上启动jmeter-server的服务,-l指定日志,jmeter运行过程中 继续阅读

3月 23

Android CPU耗电量测试

Android CPU耗电量测试

在测试Android app时,不仅仅要关注app的功能,也好关注app的性能指标,cpu、内存、流量、电量等。简单介绍下电量测试中的cpu耗电。

影响耗电的因素

  • CPU
  • Screen
  • Network (3G/wifi)
  • sensor & gps
  • WakeLock

继续阅读

1月 14

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

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

打包

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

1月 14

Robotium 用例分组运行

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

12月 09

Xcode UIAutomation 卡在starting capture

使用xcode的UIAutomation可以对ios app进行脚本录制,回放,跑monkey测试。在运行过程中,有时候会遇到卡在starting capture这里,下面是stackoverflow中的回答。

问题:

当我使用xcode的UIAutomation时,卡在”Starting Capture”.

我的操作过程如下: 继续阅读