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

2016-08-09   出处: 搜狗测试  作/译者:Deadwalk

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

背景介绍

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

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

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

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

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


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


 随机操作稳定性主界面


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

1.配置测试时间

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

3.配置随机动作的权重


ProbManager概率动作计算

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


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


ExecCoremanager随机动作执行内核

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

随机动作序列的执行:

反射方法调用包名方法:


SogouInputUtil搜狗输入法连接器

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

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

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

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


SogouInputKeyboard搜狗输入法键盘布局

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

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

2.配置文件的格式为:



InputDataProvider输入法测试数据提供类

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


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


声明:本文为本站编辑转载,文章版权归原作者所有。文章内容为作者个人观点,本站只提供转载参考(依行业惯例严格标明出处和作译者),目的在于传递更多专业信息,普惠测试相关从业者,开源分享,推动行业交流和进步。 如涉及作品内容、版权和其它问题,请原作者及时与本站联系(QQ:1017718740),我们将第一时间进行处理。本站拥有对此声明的最终解释权!欢迎大家通过新浪微博(@测试窝)或微信公众号(测试窝)关注我们,与我们的编辑和其他窝友交流。
316° /3160 人阅读/0 条评论 发表评论

登录 后发表评论