从微信跳一跳游戏谈软件测试

最近微信更新了6.6.1版本,新增了微信小游戏,一款跳一跳的小游戏火了起来,一时间大家都在玩,我也玩咯下,不过手残的缘故一直都是两位数。但是今天我在逛github的时候发现了一个开源项目wechat_jump_game,好家伙都快4千的star咯,看咯下简介,咦这不正是我想要的嘛,蛤蛤,装B的时候到咯~

今天中午跳的,为了不太夸张,只跳了540,但是也可以把微信第二名好友远远甩在后面咯。话不多说上图:

蛤蛤,是不是很厉害。原理的话其实作者已经讲得很清楚咯,那我说一下我的一个操作步骤吧。首先因为作者是用py写的,py其实也是比较适合写脚本类的东西啦,比如自动化测试的实现就完全可以用py来写。首先需要python的运行环境,配置好变量,然后就需要Android debug bridge,简称adb的东西,就是安卓调试桥,有了这个东西我们才可以通过模拟操作手机的动作来实现我们操作手机的操作,比如按压触碰等。好咯有了这两个东西后就可以操作咯,把源码拉下来,重要的是py脚本和config配置文件两个东西,其他的都还好。运行的载体的话主要是真机和模拟器,由于我没有安卓真机我就下载的模拟器来操作。安卓模拟器的话BlueStacks蓝叠还不错,夜神我测试咯下装6.6.1会闪退,其他的就不知道咯。

最近微信更新了6.6.1版本,新增了微信小游戏,一款跳一跳的小游戏火了起来,一时间大家都在玩,我也玩咯下,不过手残的缘故一直都是两位数。但是今天我在逛github的时候发现了一个开源项目wechat_jump_game,好家伙都快4千的star咯,看咯下简介,咦这不正是我想要的嘛,蛤蛤,装B的时候到咯~

今天中午跳的,为了不太夸张,只跳了540,但是也可以把微信第二名好友远远甩在后面咯。话不多说上图:

 

蛤蛤,是不是很厉害。原理的话其实作者已经讲得很清楚咯,那我说一下我的一个操作步骤吧。首先因为作者是用py写的,py其实也是比较适合写脚本类的东西啦,比如自动化测试的实现就完全可以用py来写。首先需要python的运行环境,配置好变量,然后就需要Android debug bridge,简称adb的东西,就是安卓调试桥,有了这个东西我们才可以通过模拟操作手机的动作来实现我们操作手机的操作,比如按压触碰等。好咯有了这两个东西后就可以操作咯,把源码拉下来,重要的是py脚本和config配置文件两个东西,其他的都还好。运行的载体的话主要是真机和模拟器,由于我没有安卓真机我就下载的模拟器来操作。安卓模拟器的话BlueStacks蓝叠还不错,夜神我测试咯下装6.6.1会闪退,其他的就不知道咯。

好啦,具体配置作者也有说哈,我来说下我理解的原理。首先脚本分为半手动和全自动,半手动需要人辅助操作,大概的原理是运行的时候每操作一次会截图,然后把图横放在xy坐标轴上,这时候通过点击现在棋子所在的位置和即将要跳去的位置,在坐标轴里算出这两点的距离,然后按压屏幕的时间和跳远的具体有一个比例,根据这个比例就可以算出所需要的距离需要按压多久,这时adb模拟所需要的按压时长进行按压操作实现跳跃,当然可能会有些偏差,但是也差不了多少,主要是可能不是在正圆心。

 

这里所使用的脚本操作怎么和软件测试联系起来呢?其实已经很明了了,这样的操作是模拟人动作的操作,属于“外挂”,这里的外挂不是我们平时说的那种外挂。其实外挂分为两种,一种是内挂,一种是外挂;我们常说的“外挂”其实是内挂,内挂是改变了程序内部结构而进行的一种程序,通常表现为修改内存,修改配置文件参数,修改访问权限等来达到作弊的目的,比如我们常见的透视类外挂。对于这种映射到我们测试里面来的话就是通过接口来访问程序,跳过界面向后端进行请求数据。而这种外挂是通过模拟人操作来达到目的,并没有改变程序内部结构,属于正常程序,换句话说就是机器人来玩这个跳一跳游戏。

所以最关键的便是这个adb的应用,这样可以配合着脚本模拟我们平时的测试工作,比如软件的安装与卸载,或者说是程序的链接点击查看操作,结合着接口,进行更为接近真实情况的测试。这样不只是玩游戏可以解放双手,测试同样也可以解放双手了,执行已经写好的脚本,只需要坐在电脑面前查看它的运行过程啦,岂不美滋滋。

最后鸣谢github的作者,在下面贴下他的项目地址,有兴趣的同学可以去围观学习哦~

项目地址:https://github.com/wangshub/wechat_jump_game

 

以上

Bobby

2018.1.2

好啦,具体配置作者也有说哈,我来说下我理解的原理。首先脚本分为半手动和全自动,半手动需要人辅助操作,大概的原理是运行的时候每操作一次会截图,然后把图横放在xy坐标轴上,这时候通过点击现在棋子所在的位置和即将要跳去的位置,在坐标轴里算出这两点的距离,然后按压屏幕的时间和跳远的具体有一个比例,根据这个比例就可以算出所需要的距离需要按压多久,这时adb模拟所需要的按压时长进行按压操作实现跳跃,当然可能会有些偏差,但是也差不了多少,主要是可能不是在正圆心。

 

这里所使用的脚本操作怎么和软件测试联系起来呢?其实已经很明了了,这样的操作是模拟人动作的操作,属于“外挂”,这里的外挂不是我们平时说的那种外挂。其实外挂分为两种,一种是内挂,一种是外挂;我们常说的“外挂”其实是内挂,内挂是改变了程序内部结构而进行的一种程序,通常表现为修改内存,修改配置文件参数,修改访问权限等来达到作弊的目的,比如我们常见的透视类外挂。对于这种映射到我们测试里面来的话就是通过接口来访问程序,跳过界面向后端进行请求数据。而这种外挂是通过模拟人操作来达到目的,并没有改变程序内部结构,属于正常程序,换句话说就是机器人来玩这个跳一跳游戏。

所以最关键的便是这个adb的应用,这样可以配合着脚本模拟我们平时的测试工作,比如软件的安装与卸载,或者说是程序的链接点击查看操作,结合着接口,进行更为接近真实情况的测试。这样不只是玩游戏可以解放双手,测试同样也可以解放双手了,执行已经写好的脚本,只需要坐在电脑面前查看它的运行过程啦,岂不美滋滋。

最后鸣谢github的作者,在下面贴下他的项目地址,有兴趣的同学可以去围观学习哦~

项目地址:https://github.com/wangshub/wechat_jump_game

 

以上

Bobby

2018.1.2

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注