首先我说一下我自己的情况,我是一个从来没有弄过自动化测试的人,我是做Android开发的,不过简单的测试框架学起来还好不是很费劲。废话不多说直接开始吧。
1、安装python
首先我们得下载python安装包,我下载的是3.7版本的,你们可以随意的下载,链接我就不放了,只要能下载并且安装就好了,下载好python 了之后只是万里长征的第一步
2、安装pycharm
下载好python之后还需要下载pycharm,这个下载好了之后,可能需要注册码要不然用不了,一般百度搜一下也能找到,要是有钱的话可以直接买个永久的。我这边废了就牛二虎之力才完成。(题外话,我是关注微信的一个公众好才获得的免费注册码,还不是永久的,不过已经够我用了,要是自己搞不定可以私信我,咱们再一起探讨一下)到此python就安装好了,接下来就可以开始了。
3、测试用例编写
由于我是做Android开发的,Android相关开发工具的下载安装我就不详细讲解了,不知道的可以百度一下,很多的。
接下来看看测试脚本吧
该有的注释也都有,导包前的 # coding=utf-8 这句话**一定要添加,**一定要添加,一定要添加
接下来的步骤基本就是导包 --> 连接设备 --> 安装apk包(要是之前已经安装了,此步骤可以省略)--> 设置好包名和第一个类的全路径,通过startActivitry启动第一个测试页面 --> 开始测试了。
注意的点,再启动app的时候,需要点时间,这时候需要sleep,由于我是第一次编写很多api使用的还不熟练不知道怎么回事,大家可以自己尝试。
4、录自动脚本
由于新手很多api 使用的不是很熟练,所以有些通过录的脚本来测试。
如何录?在cmd中输入monkeyrunner monkey_recorder.py一般都是会报错的,要是不报错那说明你是天选之子,出错也不用担心,先到\sdk\tools下看看有没有monkey_recorder.py这个文件,要是没有就在相应的目录下创建,
#recorder.py<br>__author__ = 'paul'
from com.android.monkeyrunner import MonkeyRunner as mr
from com.android.monkeyrunner.recorder import MonkeyRecorder as recorder
device = mr.waitForConnection()
recorder.start(device)
将以上代码拷贝进文件保存起来。
然后再monkeyrunner monkey_recorder.py执行这个命令,要是还有问题,错误提示信息
Can't open specified script file
Usage: monkeyrunner [options] SCRIPT_FILE
-s MonkeyServer IP Address.
-p MonkeyServer TCP Port.
-v MonkeyServer Logging level (ALL, FINEST, FINER, FINE, CONFIG, INFO, WARNING, SEVERE, OFF)
就 monkey_recorder.py全路径,
出来这样的一个界面,此时就可以开始录制脚本了,录制结束后点击Export Actions 这个按钮,将录制的文件保存到指定的位置,以备下次用。
播放脚本
录制好了以后就开始播放脚本了,脚本的播放还需要在\sdk\tools下创建 playback.py这个文件
import sys
from com.android.monkeyrunner import MonkeyRunner
CMD_MAP = {
"TOUCH"``: lambda dev, arg: dev.touch(``*``*``arg),
"DRAG"``: lambda dev, arg: dev.drag(``*``*``arg),
"PRESS"``: lambda dev, arg: dev.press(``*``*``arg),
"TYPE"``:``lambda dev, arg:dev.``type``(``*``*``arg),
"WAIT"``:``lambda dev, arg:MonkeyRunner.sleep(``*``*``arg)
}
#Process a single file for the specified device.
def process_file(fp,device):
for line in fp:
(cmd,rest) = line.split(``"|"``)
try``:
#Parse the pydict
rest = eval``(rest)
except``:
print "unable to parse options"
continue
if cmd not in CMD_MAP:
print "unknown command: " + cmd
continue
CMD_MAP[cmd](device, rest)
def main():
file = sys.argv[``1``]
fp = open``(``file``, "r"``)
device = MonkeyRunner.waitForConnection()
process_file(fp,device)
fp.close();
if __name__ =``= "__main__"``:
main()
将以上代码复制进去,就可以了
执行monkeyrunner playback.py 要是还有错误就将playback.py 路径补全就可以了。
以上的测试属于UI的测试,和UI的依赖较大,如果UI有变化的话就需要重新录制脚本或者重新修改脚本
以上要是有什么错误或者不规范的地方请指正,后续还会继续发布新的文章或者修改