使用Airtest批量运行自动化脚本

在我们编写好测试脚本后,通常是在IDE里面点击运行按钮运行我们的脚本,但是在IDE里面只能针对一个对象运行脚本,如何才能批量运行脚本呢。

在批量运行脚本里有两个需求,第一个是回归测试也就是一个手机运行多个脚本,另一个是兼容性测试也就是一个脚本在多个手机上运行。在IDE里运行脚本其实是经典的一对一场景,那么要实现批量运行脚本则需要脱离这种关系,实现一对多,多对一甚至是多对多。

1.安装Airtest

首先我们的Airtest脚本是基于ide环境运行的,那么要脱离ide第一步就是电脑环境要有Airtest,通过pip install airtest安装依赖,并通过pip list查看是否安装成功。

2.获取连接设备名称

因为要批量运行脚本,所以我们还应该知道连接设备的名称,不然执行的脚本和运行脚本的设备对应不上,可以通过airtest自带的adb工具查看已连接设备的名称,运用./adb devices查看连接设备名。

3.创建脚本

脚本创建时,首先了解单个脚本单设备执行

 

::关闭回显

@echo off

::切换到D盘

D:

::进入D盘的test目录

cd D:\Desktop

::执行 airtest run 命令

start airtest run testdemo.air

exit

 

其中,testdemo.air是所需执行脚本文件夹的名称,因为脚本不仅包含py文件,还有相应的截图。新建记事本,将上面代码复制后,修改脚本名称和执行目录名称,再将记事本的后缀.txt改为.bat即可完成脚本创建。脚本路径可以右键-属性进行查看

修改完成后双击bat文件即可执行脚本。其中airtest run关键字后可以带–device  –log 和 –recording 等参数。

# 不带任何参数运行脚本
airtest run D:\Desktop\testdemo.air
# 带命令行参数运行脚本
airtest run D: \Desktop\testdemo.air –device Android:/// –log log/ –recording

 

一个设备上批量执行多个脚本

 

@echo off
D:
cd D:\Desktop
title 正在执行第一个脚本
airtest run testdemo1.air
title 正在执行第二个脚本
airtest run testdemo2.air
title 正在执行第三个脚本
airtest run testdemo3.air
exit

 

一个脚本在多个设备上执行,其中设备名为连接手机名或者虚拟机远程连接地址

 

@echo off

D:

cd D:\Desktop

start “正在使用荣耀6手机运行脚本” airtest run testdemo.air –device Android:3LG4C17304008132

start “正在使用nova2手机脚本” airtest run testdemo.air –device Android:TPG5T18530014341

start “正在使用雷电模拟器跑脚本” airtest run testdemo.air –device Android://127.0.0.1:5037/emulator-5554
start “正在使用mumu模拟器跑脚本” airtest run testdemo.air –device Android://127.0.0.1:5037/127.0.0.1:7555

exit

资料来源参考引用项目官方公众号:AirtestProject

以上

Bobby

2020.11.18

事思长为贵乎,礼也

我记得在高中的时候就对韩愈的《师说》里的“师者,所以传道授业解惑也。”印象非常深刻,而现在很意外的,也踏入了这个领域,对授业解惑有咯一点自己的微小认识。

古人以天地君亲师为顺位,也表现出了对老师的尊敬,而现在我即将接触到我的学生们,是作为我所学习掌握的东西和他们阐述交流,这确实是个不小的挑战。我在我的老师们身上学习到的东西不可能全部与大家分享,但是我觉得对于学习的一些思考,还是可以作为诸君的参考。

我一直都觉得自己是站在巨人肩膀上的一个学生,在学习老师们前辈们的各个方面,这里的老师就很广义了,小到专业知识,大到穿衣吃饭。每个人都可以向他学习,而且学习到的东西也各不一样。或者用比较专业相关的术语来说,就叫大数据下的各种资源整合以达到最优化的解决方案。

我在学习或者说分享学习经验的时候,都会以授人以鱼作为比喻,最开始是悟到两层关系,即“授人以鱼不如授人以渔” ,这也是最基本的,就是教授打渔的方法比直接授鱼更为有效。然后再后来我悟到了第三层,即“授人以渔不如授人以欲”,教授打渔的方法不如教授他打渔的一种欲望,这种强烈的欲望会促使你想去学习打渔的方法从而获得鱼。我一直停留在第三层很久,直到前段时间我悟到了第四层,即“授人以欲不如授人以遇”,即提供一个很好的机会比给予他欲望来的更为重要。越深入思考就会发现事物越本质的东西,而本质的东西就是推动的前面事物表象的原因所在,有了一个好的机遇,他就会有这种学习的欲望,有了欲望之后便会去想方设法的学习,最后便可以达到一个很好的结果。简单来说就是结果导向,朝着一个既定目标去努力。我觉得还有第五或者第六层还没有悟到,但是我也不会停止思考。

所以世间万物都讲究一个逻辑,而逻辑也就是我们思考的一个东西,无论学习什么东西,有一些很好的理论体系作为支撑,按照一定的框架逻辑去展开,比如系统论,模块论或者说是模型论等作指导便会很快达成目标。

这也映射了我标题所要想表达的东西,本是事师长为贵乎礼也,我改它为了思长,即善于去思考去理解的人,才是具有一个可持续发展能力的人,学无止境。

还有一点就是关于成功的体验。我们常听到的一句话是“失败乃成功之母”然而我并不这么认为,我反而认为成功才是失败的母亲。因为失败就是失败咯,那种沮丧是很正常的,也不用拿那些安慰来骗自己。让我们成长的更多是成功的体验,哪怕是很微小的成功的体验,只有体验到了成功我们才知道原来是这种感觉。所以我并不提倡遥不可及的失败,而是一种步步为营的成功,哪怕是这步伐很小。

一点微小的感悟,与君共勉。

Bobby
2017.7.23

图片的故事

 

-夜鹰 Nighthawks

-加油站 Gas

爱德华·霍普Edward Hopper;1882年7月22日-1967年5月15日)是一位美国绘画大师,以描绘寂寥的美国当代生活风景闻名。属于都会写实画风的推广者,他的门生日后几乎都成为了美国重要画家,并被评论家称为垃圾桶画派(Ashcan School)

 


 

“因为我喜欢追寻着那个人的自己” –藤村千代子

《千年女优》今敏作品

 


The Cháo Dynasty “潮代”

艺术家Way Fung历经四个月创作《The Cháo Dynasty》潮流艺术插画,其灵感来自宋代张泽端《清明上河图》,画作长5.25米,包含了动漫、电影和时尚等新潮元素。

这幅画的作者 Digiway 以及他的其他作品

 


2005 年乔布斯在斯坦福的演讲中,说道:
当我年轻的时候,有一本叫做《整个地球的目录》振聋发聩的杂志,它是我们那一代人的圣经之一。它是一个叫 Stewart Brand 的家伙在离这里不远的 Menlo Park 书写的,他象诗一般神奇地将这本书带到了这个世界。那是六十年代后期,在个人电脑出现之前,所以这本书全部是用打字机、剪刀还有偏光镜制作的。有点像用软皮包装的 Google,在 Google 出现三十五年之前:这是理想主义的,其中有许多灵巧的工具和伟大的想法。
Stewart 和他的伙伴出版了几期的《整个地球的目录》,当它完成了自己使命的时候,他们做出了最后一期的目录。那是在七十年代的中期,你们的时代。在最后一期的封底上是清晨乡村公路的照片,如果你有冒险精神的话,你可以自己找到这条路的。在照片之下有这样一段话:“求知若饥,虚心若愚。”这是他们停刊的告别语。“求知若饥,虚心若愚。”我总是希望自己能够那样,现在,在你们即将毕业,开始新的旅程的时候,我也希望你们能做到这样:
Stay Hungry . Stay Foolish.
这就是乔布斯所说的「Stay Hungry . Stay Foolish.」的来源,1972 年《整个地球的目录》(Whole Earth Catalog) 的最后一期封底

JAVA项目在Linux服务器环境下部署

现在有一个需求:需要把一个war包部署在可以公网访问的服务器上,以用于安卓app的后台支持。

所以第一步,我们需要准备一个云服务器,这里推荐阿里云的云翼计划,24岁以下的实名用户可以获得9.5元一个月的学生服务器,很不错地址为https://promotion.aliyun.com/ntms/act/campus2018.html

服务器好了之后,我们还需要准备项目运行的一些基本环境,Tomcat服务,数据库和JAVA环境,首先我们先准备数据库环境,然后是JAVA环境,最后是Tomcat.

数据库准备

数据库的话,可以安装Xampp集成包来使用,这样会方便一些,xampp在官网即可下载,选择For Linux版本即可https://www.apachefriends.org/index.html

下载好后,我们通过运用Xftp工具连接远程数据库,把相应的包拖过去即可。

 

完成后,首先在根目录下找到安装包,并通过Xshell连接到服务器,给予安装包可执行权限

# chmod 777 xampp-linux-x64-5.6.14-0-installer.run

然后运行安装即可

./xampp-linux-x64-5.6.14-0-installer.run

安装完成后,启动/停止xampp

# /opt/lampp/lampp start/stop

卸载xampp

# /opt/lampp/lampp stop

# rm -rf /opt/lampp

如果提示服务启动OK,则成功启动,启动失败的话需要检查服务器端口是否被其他程序占用,Apache默认端口为80,Mysql默认端口为3306。

启动完成后,我们可以通过Navicat或HeidiSQL远程连接数据库,如果这时候出现数据库连接不上的话,则是因为Mysql数据库未授予远程连接权限,需要给其他IP地址授权处理以下。

通过Xshell登陆数据库(密码默认为空)

1.执行MySQL mysql -u root -p空密码(登录MySQL)

2.执行use mysql;(跳到系统的mysql库)

3.执行update user set host = ‘%’ where user = ‘root’;(设置root用户的访问IP为全部而不只是本地)

4.执行FLUSH PRIVILEGES;(这一步很重要,实时刷新权限生效)

完成后即可远程连接数据库,连接上后记得给数据库设置一个密码

JAVA环境准备

Java环境配置时主要注意安装的文件路径和环境变量的设置

首先在官网下载对应版本的安装包,注意是linux版本64位后缀为tar.gz的包

https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html

下载完成后,先进入linux系统里的local文件夹下,创建一个名为文件夹,并进入

cd usr/local/
mkdir kencery
cd kencery/
进入后,然后按照之前的方式运用Xftp工具将压缩包拖到linux服务器上的该目录下
然后解压我们下载好的jdk文件,并重命名文件,完成后进入该文件夹
 tar -zxv -f  jdk-8u11-linux-x64.tar.gz   //解压文件
 mv jdk-8u11-linux-x64  javajdk //将文件重命名为javajdk
 cd javajdk //进入重命名好的目录
接下来配置java的环境变量
输入

vim /etc/profile

进入文档查看,按i进入编辑模式,将下面一段配置输入到底部

JAVA_HOME=/usr/local/kencery/javajdk
PATH=$JAVA_HOME/bin:$PATH
CLASSPATH=$JAVA_HOME/jre/lib/ext:$JAVA_HOME/lib/tools.jar
export PATH JAVA_HOME CLASSPATH
写完之后我们按键盘(ESC)按钮退出,然后按(:wq)保存并且关闭Vim。
配置完成之后,最重要的一步就是使文件立即生效:命令如下:
source /etc/profile
如果生效,此时我们输入java -version就能查看到返回java版本的提示

Tomcat准备

同样我们在官网上下载tomcat,https://tomcat.apache.org/download-80.cgi,下载的时候要注意一下项目的支持问题,老一点的项目下载9可能会出一些问题,我这里下载的是apache-tomcat-8.5.43.tar.gz

下载完成后,以同样的方式拖到Linux服务器里,先在local文件夹下创建一个tomcat文件,再将压缩包拖到该文件夹下,然后再解压。

mkdir /usr/local/tomcat     //在local下新建tomcat文件夹

mv apache-tomcat-8.5.43 /usr/local/tomcat/  //将下载好的压缩包移动到新建的文件夹下

tar -zxvf apache-tomcat-8.5.43.tar.gz  //解压当前文件在该文件夹下

 

完成后,我们进入解压好的目录下的webapps目录下,将我们打包好的war包通过xftp工具拖动到该目录下

完成后,我们回到bin目录下,启动tomcat服务即可

cd /usr/local/tomcat/apache-tomcat-8.5.43/bin

./startup.sh     //启动服务

./shutdown.sh    //关闭服务

Tips:在启动tomcat之前,还需要确定war包里面的数据库连接信息和当前设置数据库的连接信息一致(包括地址,端口,账号,密码等),并确保本机数据库服务已经启动

 

以上

Bobby

2019.7.30

 

 

 

 

2019年4月好书推荐-《孤独六讲》

“美学的本质或许就是孤独”

第一次接触美学这个词,竟然是在讲孤独。说起孤独,我会想到什么呢,日常琐事,或许就是自己与自己生活吧。想起一句话,他有属于他自己的孤独,所谓的心心相通,都只是一场误会而已。

本月Bobby好书推荐,《孤独六讲》,看完之后,希望有进一步的理解。

 

数据库设计-E-R图与概念模型

数据库设计的三个步骤:

1.概念模型

2.数据模型

3.物理模型

1、图书借阅管理系统数据库要求提供下述服务:

(1)可随时查询书库中现有书籍的品种、数量与存放位置。所有各类书籍均可由书号惟一标识。

(2)可随时查询书籍借还情况,包括借书人单位、姓名、借书证号、借书日期和还书日期。

约定:任何人可借多种书,任何一种书可为多个人所借,借书证号具有惟一性。

(3)当需要时,可通过数据库中保存的出版社的电报编号、电话、邮编及地址等信息向相应出版社增购有关书籍。

约定,一个出版社可出版多种书籍,同一本书仅为一个出版社出版,出版社名具有惟一性。

1.2数据建模:

E-R图设计步骤

第一步:抽象实体:借书人,图书,出版社

第二步:确定实体的属性:借书人:借书证号,姓名,单位

第三步:确定实体的联系:借阅,出版

第四步:确定实体之间的关系:1:1;1:n;m:n

满足上述需求的E-R图如图:

E-R图转换成关系模型

第一步:将实体转换为关系模型(罗列属性,并用下划线标识主码)

借书人(借书证号,姓名,单位)

图书(书号,书名,数量,位置)

出版社(出版社名,电报编号,电话,邮编,地址)

第二步:将联系转换为关系模型(罗列属性,如果属性不具有明显的主码,则从对应的实体提取主码)

借阅(借书日期,还书日期)

第三步:梳理关系

1:1:候选码(两边选其一)

1:n:n端码(多的端的主码作为关系的码)

m:n:组合码(两端为共同主键)

第四步:合并关系(实体与联系):前提条件:实体和联系有相同的码

1:1:联系合并到其中一个实体中

1:n:联系合并到n端的实体中

m:n:不能合并

关系模型如下:

借书人(借书证号,姓名,单位)

图书(书号,书名,数量,位置,出版社名)

出版社(出版社名,电报编号,电话,邮编,地址)

借阅(借书证号,书号,借书日期,还书日期)

 

(完)

正交试验设计法设计测试用例

正交表的构成

行数(Runs):正交表中的行的个数,即试验的次数,也是我们通过正交实验法设计的测试用例的个数。

因素数(Factors) :正交表中列的个数,即我们要测试的功能点。

水平数(Levels):任何单个因素能够取得的值的最大个数。正交表中的包含的值为从0到数“水平数-1”或从1到“水平数” 。即要测试功能点的输入条件。

正交表的形式:

L行数(水平数因素数)

如:L8(27)

 

用正交实验法设计测试用例

以上介绍了正交实验法的由来。怎么用正交实验法进行用例的设计呢?

一、用正交表设计测试用例的步骤

(1) 有哪些因素(变量)

(2) 每个因素有哪几个水平(变量的取值)

(3) 选择一个合适的正交表

(4) 把变量的值映射到表中

(5) 把每一行的各因素水平的组合做为一个测试用例

(6) 加上你认为可疑且没有在表中出现的组合

二、如何选择正交表

考虑因素(变量)的个数

考虑因素水平(变量的取值)的个数

考虑正交表的行数

取行数最少的一个

三、设计测试用例时的三种情况

(1) 因素数(变量)、水平数(变量值)相符

(2) 因素数不相同

(3) 水平数不相同

具体实列

 

我们拿易安卓app登录界面为例

 

(1) 有哪些因素(变量)

我们可以分析看出有账号,密码,记住密码,选择用户四个因素

(2) 每个因素有哪几个水平(变量的取值)

账号,密码的水平为填或不填,记住密码的水平为选或不选,选择用户的水平为选个人用户和选学校用户两个水平,所以四个因素都为两个水平

(3) 选择一个合适的正交表

选择正交表要符合下面的规则

1、表中的因素数>=3;

2、表中至少有3个因素数的水平数>=2;

3、行数取最少的一个。

 

这个时候我们就可以安装这个规则去查找正交表了,如何查找正交表?可以通过下面两个地址去查询

http://support.sas.com/techsup/technote/ts723_Designs.txt

http://www.york.ac.uk/depts/maths/tables/orthogonal.htm

 

从第一个地址找到了一个比较适合我们的正交表为行数为8行,4因素2水平,1因素4水平的这张表

 

2^4 4^1     n=8

00000

00112

01011

01103

10013

10101

11002

11110

 

(4) 把变量的值映射到表中

为了美观我们先处理一下这个表

行号 列号
1 2 3 4 5
1 0 0 0 0 0
2 0 0 1 1 2
3 0 1 0 1 1
4 0 1 1 0 3
5 1 0 0 1 3
6 1 0 1 0 1
7 1 1 0 0 2
8 1 1 1 1 0

然后根据上面的分析结果把因素填到每列,水平填到每行,结果如下,水平对应填写比如0=填,1=不填;0=记住,1=不记住;0=个人用户,1=学校用户.

 

行号 列号
账号 密码 记住密码 选择用户 5
1 记住 个人用户 0
2 不记住 学校用户 2
3 不填 记住 学校用户 1
4 不填 不记住 个人用户 3
5 不填 记住 学校用户 3
6 不填 不记住 个人用户 1
7 不填 不填 记住 个人用户 2
8 不填 不填 不记住 学校用户 0

完成后发现多了一列,是因为我们只有四个因素,但是正交表有5列,这个时候我们就把最后一列删除掉,构成如下图

(5) 把每一行的各因素水平的组合做为一个测试用例

行号 列号
账号 密码 记住密码 选择用户
1 记住 个人用户
2 不记住 学校用户
3 不填 记住 学校用户
4 不填 不记住 个人用户
5 不填 记住 学校用户
6 不填 不记住 个人用户
7 不填 不填 记住 个人用户
8 不填 不填 不记住 学校用户

(6) 加上你认为可疑且没有在表中出现的组合

这一步就是补充正交表里可能没有出现你觉得比较重要的情况,比如全空或者全部填写,还有就是只填写重要项其他都不填之类的,这个列子还好我们就补充一条填写账号密码,记住密码的学校用户与第一行做个比较.

行号 列号
账号 密码 记住密码 选择用户
1 记住 个人用户
2 不记住 学校用户
3 不填 记住 学校用户
4 不填 不记住 个人用户
5 不填 记住 学校用户
6 不填 不记住 个人用户
7 不填 不填 记住 个人用户
8 不填 不填 不记住 学校用户
9 记住 学校用户

 

 

好了做到这一步我们的用例也确定下来了,9条用例,接下来根据这九条就可以书写用例了,找到一个用例模板开始书写用例,第一行转换成用例如下:

 

测试用例编号 DL-001
测试模块 易安卓APP登录模块
测试标题 个人用户填写账号密码,勾选记住密码登录
重要级别
预置条件 APP已经安装并能正常启动
操作步骤 1、打开登录界面;2、账号输入Admin

3、密码输入123456

4、勾选记住密码按钮

5、选择个人用户

6、点击“登录”。

 

预期输出 登录成功,页面跳转到易安卓首页

让”坦白说”变”真相说”,从测试谈Https协议的抓取实践

最近好像QQ出咯一个新的模块坦白说,好像是匿名给好友发送标签,感觉这个应该是运营团队想出来的新点子.想必收到咯的同学都很想知道,哇这个是谁发给我的呀,这个认识咯X年,XX星座的同学是谁哦.其实很简单,我们用点小工具就可以看到咯.


首先我们要明白这个模块应该也是基于http协议的H5网页,那么抓取协议信息就很重要咯.通常我们接触接口的时候就会用到抓取工具,那么这次我们来看坦白说这个东西就要用到之前提过我也比较喜欢的接口分析工具-Charles

那么Charles的话其实是Mac平台移植到win平台的,主要是颜值比fiddler高所以比较喜欢哈哈.不多说咯先下载安装.然后局域网通过手机连接到电脑热点,记得设置代理8888端口,OK第一步搞定咯,现在直接在手机上打开QQ,这个时候我们就会发现已经抓取咯一些接口啦,但是我们发现很多QQ的接口都是锁住的,这是怎么回事呢?这是因为QQ使用的是https协议而不是http协议,协议加了密的,所以我们需要设置一下证书才可以正常访问接口内容.

ok设置证书需要设置charles的SSL,这个网上有的我就不细说咯,设置好咯之后需要在SSL Proxying Settings 添加一条ti.qq.com:443的记录,这个就是坦白说的地址.好咯之后我们再次打开QQ的坦白说访问到收到的坦白说页面,这个时候就会抓取到收到的消息列表咯.好的这个时候我们拿到咯字段列表的json数据,但是”fromEncodeUin”这个字段是加密咯的,看咯一下这个就是发送人的QQ,只要拿到这个字段就大工告成啦.

怎样破解这个加密的QQ号呢?其实..不简单说实话我没有研究过,但是已经有大神破解出来咯我们自接用就可以咯,地址:https://jackz.cn/article/qq_honestsay,把抓取好receive文件的json数据复制粘贴过来,搞定.QQ号出来啦,这个时候你只需要搜索QQ号就知道是那个好友发给你的咯,是不是很简单呢.赶快去试试吧~

很惭愧 一点微小的分享 谢谢大家
以上
Bobby
2018.4.9

Robot framework,自动化测试利器

大家好,我是Bobby,很久没有写文字咯.今天直接给大家带来一个好东西,自动化测试框架-Robot framework.

其实RF这个框架我也是最近才有所接触,在之前的时候我研究的方向是selenium2+webdriver,然后直到了解了RF之后才发现,这比sw组合好用多咯哇,美滋滋.

首页简单介绍一下Robot framework,简单来说就是帮我们自动执行用例并可以生成报告的一个开源的测试框架,具有良好的扩展性,然后基于Python语言开发,所以学习起来也是很简单,下面就直接开整.

安装RF测试框架需要进行以下11步骤的安装:

序号 安装包名 安装方法 下载地址 备注
1 python exe文件,直接双击安装 https://www.python.org/downloads/release/python-2714/ python目前有2.7和3.6两个主流版本,但是ride目前只支持2.7版本,所以建议先通过ride熟悉RF,安装的时候记得勾选Add Python 2.X to PATH
2 setuptools 下载ez_setup.py文件,双击  

https://pypi.python.org/pypi/setuptools

 

Python 的套件管理程式,需要的依赖,直接装就可以了

3 pip 1、cmd进入ez_setup.py文件目录

2、用setuptools安装:easy_install pip

https://pip.pypa.io/en/latest/index.html  

Python 的套件管理程式,比较重要,安装好后后面可以通过pip命令安装后面的支持库

4  

robot framework

1、pip install robotframework

2、源码:python setup.py install

3、exe文件,直接双击安装

https://pypi.python.org/pypi/robotframework robot framework本身,推荐第一种通过pip命令安装
5  

wxPython

1.pip install -U wxPython

2.exe文件,直接双击安装

http://wxpython.org/download.php#stable 支撑Ride的运行库,推荐pip安装
6  

robotframework-ride

1、pip install robotframework-ride

2、源码:pythont setup.py install

3、exe文件,直接双击安装

https://pypi.python.org/pypi/robotframework-ride ride,rf可视化用例编写
7  

selenium2library

1、pip install robotframework-selenium2library

2、源码:pythont setup.py install

3、exe文件,直接双击安装

https://pypi.python.org/pypi/robotframework-selenium2library selenium2测试库,基于webdriver驱动,推荐pip安装
8  

cx_Oracle

exe文件,直接双击安装  

http://sourceforge.net/projects/cx-oracle/files/

连接oracle用的(支持第9步),下载时注意选择对应版本,如wxPython2.8-win32-unicode-2.8.12.1-py27,注意下32位的,别问我为什么
9  

databaselibrary

1、pip install robotframework-databaselibrary

2、源码:pythont setup.py install

https://github.com/franz-see/Robotframework-Database-Library DB库,推荐pip安装
10 requests pip install requests  

https://pypi.python.org/pypi/requests

支持第11步,否则RF引入RequestsLibrary库会报错
11  

RequestsLibrary

 

pip install -U robotframework-requests

 

https://github.com/bulkan/robotframework-requests

http request库

如果安装完成都没有报错,那么恭喜你RF框架已经安装完成了.怎么启动呢,首先找到你电脑安装的python目录下的Scripts文件夹,找到ride.py文件

在文件夹空白处按住shift键并同时点击鼠标右键打开PowerShell窗口如下,输入ride.py点击回车

此时运行后出现ride界面说明打开成功,如果想要设置快捷启动图标可以右键ride.py发送到桌面快捷方式,然后图标可以在这个地址Python27\Lib\site-packages\robotide\widgets\robot.ico找到一个机器人

设置好快捷启动后就可以点击设置好的桌面图标快捷启动ride

注意事项

1.安装python的时候要注意勾上Add Python 3.6 to PATH,然后点“Install Now”即可完成安装,没有勾选的话就需要手动去环境变量里配置

验证python是否安装成功,打开CMD在终端里面输入python返回版本号就说明配置成功

以上

2018.4.5

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

最近微信更新了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