Android 自动化测试脚本初探

最近作一个仓库APP的项目,其中一些测试的体力活,数据造起来很是麻烦,须要造条码,须要疯狂扫描测试效率,以及永远都没法避免的回归测试.烦恼之余,想一想为何不使用自动化脚原本解脱轮回呢.python

​ 自动化工具网上已经不少,已经有无数个轮子,但使用起来有些麻烦.我想要测试的只是最简单的模拟录入.不想那么的去调查和学习自动化工具等比较重的东西.就想到了经过脚本模拟一些录入.最初的困难来自仓库收货扫描的时候须要采集SN,我造了400个SN条码,扫了100次,已经开始扫的头晕脑胀了,这些简单重复的工做在我眼中不该该由人去作的,因而开始想办法如何自动化模拟输入;android

​ 因为知识狭隘,最初使用的是 adb shell命令,这个命令由于开发android的时候常常用到,因此第一个想到了它,模拟400SN,扫描录入并肯定上架.原本枯燥的输入工做,瞬间变的简单,命令行执行起脚本.去趟厕所回来,结果执行的差很少了.再次回归测试,只须要改几个数据便可.是否是很方便.shell

 
    
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
 
    
# 订单 9504 sku 10000001 循环400次
intCount=900100
stringDefalut='286172018012'
adb shell input text 000000009504
adb shell input keyevent 66
sleep 1
for ((i=1;i<=400;i++))
do
adb shell input text ${stringDefalut}$[${intCount}+${i}]
# 66 回车
adb shell input keyevent 66
sleep 1
# 最下面的button
adb shell input tap 240 750
#seleep 1
done

​ 脚本发给了同事,发现shell命令在windows平台下执行效果很差.不兼容.花几分钟时间瞬间改为Python版本,兼容各类平台了;windows

 
    
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
 
    
import time
import os
def execute(cmd):
os.system(cmd)
def text(content):
os.system( 'adb shell input text ' + content)
def enter():
os.system( 'adb shell input keyevent 66')
time.sleep( 1)
# 订单 9504 sku 10000001 循环400次
intCount = 900100
stringDefault = '286172018012'
# inputCmd = 'adb shell input text 000000009504'
# text('000000009504')
# enter()
for i in range( 50, 51):
intCount += i
text(stringDefault + str(intCount))
enter()
execute( 'adb shell input tap 240 750')

​ 固然以上的脚本只是最简单的脚本,模拟录入,没有和UI交互.若是想更深刻的自动化测试,这个时候就须要使用各类自动化测试工具了.bash

​ adb shell 和 python真是个好东西,万能胶水语言python,我要好好学学了;工具

原文连接:学习

http://zhangzeshuai.com/2018/01/31/shellautotestandroid/
测试