Android 单元测试 吴明
- Android单元测试支持
- Android studio 1.2 beta3版本,原生支持单元测试
- 环境搭建
- 配置环境命令:./gradlew build connectedCheck
- 测试示例
1 | public class MyFirstTestActivityTest extends ActivityInstrumentationTestCase2<MyFirstTestActivity> { |
- ps:由于配置环境一直报:
1 | Test running failed: Instrumentation run failed due to 'java.lang.RuntimeException' |
- Automating UI Tests
- Building Effective Unit Tests
- Testing Display Performance
- 问题:
- 运行在模拟器上,通过对模拟器的操作或者mock,来触发函数调用,进而对其结果进行验证
- 测试的编写和维护较为困难
Linux 文件权限入门 - 曾铭
一个线上 bug
图片上传 API 无法使用,定位到问题是 dev1 帐号移动的 tomcat 无法访问 /home/img_temp 目录,处理权限问题后搞定
基本概念
user, group, others
1 | [dev1@apps-51offer ~]$ ll |
- 文件
-
- 文件夹
d
- 链接
l
rwx 读、写、执行权限 , 754 代表什么
- 文件所有者变更:
chown ming:mobile file
- 文件权限变更:
chmod g+rx file
一个小坑
问:
drwxr-xr-- 2 dev1 dev 4096 Nov 6 10:44 test2
文件夹下有-rwxr-xr-- 2 root root 4096 Nov 6 10:44 file
dev1 用户可以删除 file 这个文件吗?
答:
可以,文件的 rwx 控制文件本身的读写运行权限,文件的增删文件名的修改要看文件夹的权限。
Android 压力测试工具 Monkey&MonkeyRunner- 杨俊构
Monkey
一、Monkey 是什么?
- Monkey 就是SDK中附带的一个工具。
二、Monkey 测试的目的?
- 该工具用于进行压力测试。 然后开发人员结合monkey 打印的日志 和系统打印的日志,结局测试中出现的问题。
三、Monkey 测试的特点?
- Monkey 测试,所有的事件都是随机产生的,不带任何人的主观性。
四、Monkey 命令详解
标准的monkey 命令: [adb shell] monkey [options]
, 例如:adb shell monkey -v 500 ————产生500次随机事件,
四大类—— 常用选项 、 事件选项 、 约束选项 、 调试选项
-v:指定打印信息的详细级别,一个 -v增加一个级别 , 默认级别为 0 。
-s:指定产生随机事件种子值,相同的种子值产生相同的事件序列。如: -s 200
-p:指定有效的package(如不指定,则对系统中所有package有效),一个-p 对应一个有效package, 如:-p com.ckt -p com.ckt.asura;
五、一个简单的monkey命令:
adb shell monkey -p com.xy.android.junit -s 500 -v 10000
但是,工作中为了保证测试数量的完整进行,我们一般不会在发生错误时立刻退出压力测试。
monkey 测试命令如下
adb shell monkey -p com.xy.android.junit -s 500 —ignore-crashes —ignore-timeouts —monitor-native-crashes -v -v 10000 > E:\monkey_log\java_monkey_log.txt
MonkeyRunner
一、什么是monkeyrunner
monkeyrunner工具提供了一个API,使用此API写出的程序可以在Android代码之外控制Android设备和模拟器。通过monkeyrunner,您可以写出一个Python程序去安装一个Android应用程序或测试包,运行它,向它发送模拟击键,截取它的用户界面图片。
monkeyrunner工具的主要设计目的是用于测试功能/框架水平上的应用程序和设备,或用于运行单元测试套件,但您当然也可以将其用于其它目的。
二、monkeyrunner工具同Monkey工具的差别
Monkey: Monkey工具直接运行在设备或模拟器的adb shell中,生成用户或系统的伪随机事件流,属于黑盒测试。
monkeyrunner:monkeyrunner工具则是类似于灰盒测试的样子,可以编写定制一些测试方法和用例针对具体情况测试。
三、实例 :双11抽取优惠券不停点击一个按钮脚本
1 | #coding=utf-8 |
人脸识别技术简单介绍- 王进
Android自带的API:FaceDetector
Step 1: 读取bitmap图片(API 只接受Bitmap)
1
Bitmap sampleBmp=BitmapFactory.decodeResource(getResources(), R.drawable.sample1);
(拍照或者从相册中也可以)
Step 2: 通过FaceDetector API进行人脸识别
1
2
3
4
5
6
7//FaceDetecor只能读取RGB 565格式的Bitmap
Bitmap tmpBmp = inputImage.copy(Bitmap.Config.RGB_565, true);
//新建FaceDetector 实例,
FaceDetector faceDet = new FaceDetector(tmpBmp.getWidth(), tmpBmp.getHeight(), MAX_FACES);//MAX_FACES 搜索人脸个数
// 调用findFaces方法,将数据储存在facelist中
FaceDetector.Face[] faceList = new FaceDetector.Face[MAX_FACES];
faceDet.findFaces(tmpBmp, faceList);找人脸的原理是:找眼睛。
它返回的人脸数据face中,
通过调用public float eyesDistance (),得到眼距
public void getMidPoint (PointF point),得到两眼中心点位置。
public float confidence () 可以返回该人脸数据的可信度(0~1),这个值越大,该人脸数据的准确度也就越高Step3:对原图进行缩放,并在图上显示人脸框
- 吐槽:
A,只能接受Bitmap 格式的数据;
B,只能识别双眼距离大于20 像素的人脸像(当然,这个可在framework层中修改);
C,只能检测出人脸的位置(双眼的中心点及距离),不能对人脸进行匹配(查找指定的脸谱)。
- 吐槽:
第三方Face++
- 在线API:基础版API供免费调用测试和小规模使用(会尽力维护API服务稳定性,但不保证每次调用均会成功),企业版API相对基础版API在算法和稳定性方面会有更好的表现
- 离线SDK包括人脸关键点定位等功能。
- 网址:http://www.faceplusplus.com.cn/