输入法随机自动化测试框架

本文章转载于搜狗测试

本期小编与大家分享搜狗手机输入法随机自动化测试框架以及随机动作概率算法。

背景介绍

提起随机自动化操作,相信大家并不陌生,目前使用最为普遍的adb monkey命令应该都有所耳闻。monkey优点不言而喻,它使用起来很简单,只需要在命令输入命令即可完成对app的各种随机操作。但是在搜狗手机输入法项目中,这一方法就有些局限了:

输入法稳定性测试重点之一是输入各种语料内容,也就是输入ni'hao等比较有规律的词语,这一点monkey无法满足。

输入法稳定性测试需要定制有一些有序的动作,例如:输入ni'hao后,点击候选词文字进行上屏;又或者是切换输入键盘等。

以上2中定制的动作数量很多,希望能够在测试前进行灵活配置,例如:覆盖安装输入法权重低,打字上屏权重高。

基于以上几点,在搜狗手机输入法自动化测试中,我们设计了一种随机自动化的框架,与大家进行分享。

输入法随机自动化测试框架图

输入法随机自动化测试框架_第1张图片

随机操作稳定性主界面

主界面主要提供的功能是:

1.配置测试时间

2.控制随机自动化的开始和结束

3.配置随机动作的权重

输入法随机自动化测试框架_第2张图片

ProbManager概率动作计算

假设我们要配置的动作列表如下:

动作名称

权重值

起始点

结束点

Action1

20

1

20

Action2

50

21

70

Action3

5

71

75

Action4

100

76

175

通过map,记录每个Action的起始点和结束点,然后随机函数获取1到175(最大结束点)的随机数,这样即可得到对应权重的比例。

ExecCoremanager随机动作执行内核

这部分主要有两个功能:随机动作序列的执行和反射方法调用包名下的方法

随机动作序列的执行:

输入法随机自动化测试框架_第3张图片

反射方法调用包名方法:

输入法随机自动化测试框架_第4张图片

SogouInputUtil搜狗输入法连接器

SogouInputUtil是连接Monkey和SogouInput键盘布局的连接器:

SogouInputKeybard主要专注于维护输入法各个控件的坐标,例如拼音26键的qwery等按键的位置。

SogouInputUtil将要执行的动作转换为坐标值,然后告诉给monkey模块去执行。

如果希望有更多复杂的随机动作,可以派生SogouInputUtil进行编写即可,例如执行打字功能:

输入法随机自动化测试框架_第5张图片

SogouInputKeyboard搜狗输入法键盘布局

该模块主要用于维护搜狗输入法键盘各个控件的坐标值,目前实现的方法是从配置文件中读取坐标位置:

1.配置文件保存位置:哆啦A梦assets的inputConfig目录。

2.配置文件的格式为:

输入法随机自动化测试框架_第6张图片

InputDataProvider输入法测试数据提供类

该模块主要用于向随机稳定性动作提供测试数据。

输入法随机自动化测试框架_第7张图片

读取的数据文件位置为:哆啦A梦assets目录下的KPITestDir/Source数据,该数据内容为线上的用户输入语料。

输入法随机自动化测试框架_第8张图片

你可能感兴趣的:(输入法随机自动化测试框架)