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

发表于:2016-9-12 11:06

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:搜狗测试 Deadwalk    来源:51Testing软件测试网采编

  本期小编与大家分享搜狗手机输入法随机自动化测试框架以及随机动作概率算法。
  背景介绍:
  提起随机自动化操作,相信大家并不陌生,目前使用最为普遍的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键盘布局的连接器:
  SogouInputKeybard主要专注于维护输入法各个控件的坐标,例如拼音26键的qwery等按键的位置。
  SogouInputUtil将要执行的动作转换为坐标值,然后告诉给monkey模块去执行。
  如果希望有更多复杂的随机动作,可以派生SogouInputUtil进行编写即可,例如执行打字功能:
  SogouInputKeyboard搜狗输入法键盘布局
  该模块主要用于维护搜狗输入法键盘各个控件的坐标值,目前实现的方法是从配置文件中读取坐标位置:
  1.配置文件保存位置:哆啦A梦assets的inputConfig目录。
  2.配置文件的格式为:
  InputDataProvider输入法测试数据提供类
  该模块主要用于向随机稳定性动作提供测试数据。
  读取的数据文件位置为:哆啦A梦assets目录下的KPITestDir/Source数据,该数据内容为线上的用户输入语料。
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号