8种机械键盘轴体对比
本人程序员,要买一个写代码的键盘,请问红轴和茶轴怎么选?
总结下日常用到的Android软件测试工具 包括白盒和黑盒的
一个包含创建测试、执行自动化测试的工具
Android SDK Tools:API 21 版本或者21以上版本;
Android SDK Platform:API 16 版本或者16以上版本
查看ui控件位置的二进制文件在sdk/tools/bin/uiautomatorviewer 双击即可打开 windows的话会是bat文件吧
通过该二进制文件找到控件的id后 可以创建对应的UiObject 然后操控控件的点击 拖拽 滚动等功能 如下代码1
2
3
4
5
6
7
8
9
10UiSelector = new UiSelector().resourceId("com.tencent.mobileqq:id/conversation_head");
// 通过UiSelector 对象 创建出 UiObject 对象
UiObject switcher = new UiObject(uiSelector );
// 判断该控件是否存在
if (switcher.exists())
{
//点击该控件
switcher.click();
}
java的实现方式 需要继承UiAutomatorTestCase类 该类在uiautomator.jar中包含 生成build.xml后用ant工具进行编译最后生成一个 工程名.jar包 推到设备 /data/local/tmp 目录下 在adb shell 中执行: uiautomator runtest 工程名.jar -c 包名.类名 该方式每次改动后都需要编译和生成jar包 稍微麻烦 但是可以直接在设备下运行 如一些微信抢红包的小工具就可以通过这种方式实现 下面介绍python的方式来实现
python的实现方式 先通过pip安装uiautomator库 pip install uiautomator 然后就可以创建py文件写测试代码啦 最后将py文件加上执行权限 直接终端运行python3 xxx.py 即可 代码如下1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26from uiautomator import device as d
#几种方式创建Device
#d = Device('014E05DE0F02000E')
#d = Device('014E05DE0F02000E', adb_server_host='192.168.1.68', adb_server_port=5037)
d = Device()
#屏幕点亮
d.screen.on()
d(text="Clock").click()
# press home key
d.press.home()
# press back key
d.press.back()
# click (x, y) on screen
d.click(x, y)
# long click (x, y) on screen
d.long_click(x, y)
# swipe from (sx, sy) to (ex, ey)
d.swipe(sx, sy, ex, ey)
# drag from (sx, sy) to (ex, ey)
d.drag(sx, sy, ex, ey)
# take screenshot and save to local file "home.png", can not work until Android 4.2.
d.screenshot("home.png")
# wait for current window to idle
d.wait.idle()
# wait until window update event occurs
d.wait.update()
python版本的uiautomator的来自于民间作者xiaocong做的wrapper 下面贴一下他的github项目地址
https://github.com/xiaocong/uiautomator
更多api可以在他的项目下找到
2.Monkey
使用方式很简单1
2
3
4
5
6
7
8
9
10
11
12
13// -vvv表示级别为详细 数字400表示运行的次数 --pct-touch表示点击事件占百分之50 -s 表示seed为1234 想重现使用同样的seed即可 最后执行结果保存到本地txt文件
adb shell monkey -vvv -p com.tencent.mobileqq 400 --pct-touch 50 -s 1234 > ~/monkey.txt
更多扩展
--pct-appswitch 在随机间隔里,Monkey将执行一个startActivity()调用,作为最大程度覆盖包中全部Activity的一种方法
--pct-anyevent 它包含了所有其它类型的事件,如:按键、其它不常用的设备按钮等等
--throttle 用于指定用户操作(即事件)间的时延,单位是毫秒
--ignore-crashes 忽略crash
--ignore-timeouts 忽略anr
--ignore-security-exceptions 忽略许可认证
-help 更多指令 参考help引导
最后搜索日志 一般搜索以下关键字即可 anr crash die exception