接口测试

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

田地01 田地01
修改前
田地00 田地00
田地11 田地11
田地10 田地10
田地20 田地20
一个简单的接口测试完成了,在这个 测试中关键的是植物的状态和田地的 ID,在项目中碰到类似情况可使用该方法测 试。分析游戏中存的这个问题是程序没有判 断加血是否使用了道具。 在游戏中进行战斗,捕获到植物受伤的请求
商城获得一条购买道具的请求。(注:下 图为赠送礼物请求,和购买无多大差异)
道具ID 道具数量
玩过植物1的人都知道,魔晶石只能通过 消灭BOSS获得。现在的测试就是通过一些 异常徒径来获得魔晶石,大量的、不要钱 的、无限的。
测试要点—更改道具ID或其它特ID
经过了前面几个例子,现在这条的请求重 道具ID. 点是什么?道具ID. 道具ID.先可以从技术处得到道 具ID表。魔晶石的ID是14,这是我已经改 好了。更改道具ID再发送请求后的结果会 是如何? 在这个BUG没有修复之前,你就会免费得 到一个魔晶石,当然更改数量。同时还 可以免费赠送给好友。有的时候程序员 会把一些特殊道具和普通道具放在一起 而忘了限制。在接口测试的时候一定要 注意这个。
接口测试工作量分配
准备阶段(80%)
拿到开发的接口文档,并理解每个接口的参数及含义 了解被测试系统的业务流程 编写接口测试用例
执行阶段(10%)
测试用例/测试场景执行 测试数据/系统数据收集
分析阶段(10%)
数据汇总/日志分析 测试报告
接口测试用例编写
接口测试用例编写要点
1. 2. 3. 4. 5. 测试每个参数类型不合法的情况(类型不合法容易遗漏掉NULL型) 测试每个参数取值范围不合法的情况 测试参数为空的情况 测试参数前后台定义的一致性 测试每个参数的上下限(这里容易出致命的BUG,如果程序处理不 当,可能导致崩溃) 6. 测试每个参数取值不合理的情况(包括取的值不属于自己,取值 在这阶段不会出现,取值超出了自己所拥有的数量或者范围) 7. 如果两个请求有严格的先后顺序,需要测试调转顺序的情况 8. 自己和自己的交易、聊天等操作(这种特别容易遗漏)
田地30 田地30
田地40 田地40
分析捕获到的数据: Content 程序定义的数组,相关数值(value)至关重 要。 [0] number 1 :植物受伤状态,number:数据类型; [1] string 30:田地的ID,string:数据类型; [2] number 3 :植物状态,分为1、2、3三种; 1:植物完好型态、2:轻伤、3:重伤。 现在知道了植物的三种状态和田地的ID,继续下一步修 改捕获的请求。
Charles示例— Charles示例—负数 示例
游戏名称:植物战怪兽 运行平台: www.facebook.com 实例描述:修改道具价格为负数,得到游戏币。

意:非常严重的问题
测试要点—更改购买数量为负数
获得幕后的接口,在这个“输入框” 做非法验证。
简单的输入框测试谁都会,边界值、正整数、 负数、非法数据等。下面这个输入框当这些 测试方法都不会有问题的时候,没有经验的 测试员一定会认为,这个输入框是通过测试 的。
接口测试常见问题
1.可重复请求成功数据 2.可修改请求状态并正常完成请求 3.修改道具ID、任务ID 获得道具或完成未完成任务 4.修改道具价格为负、为零负得游戏币 5.修改玩家UID删除别人游戏资料或是调用别人游戏资料 6.并发请求免费获得道具
Charles简介 Charles简介
1. Charles是一个HTTP自动代理服务器,HTTP监视器,反转代理服务 器。它允许一个开发者查看所有连接互联网的HTTP通信。这些包括 request,response现HTTP headers (包含cookies与caching信息)。 2. Charles是一个简单的基于HTTP协议传输的调试工具,在开发和 测试工作扮演着重要的角色。 3. Charles在特殊情况下会出现劫持浏览器导致无法浏览网页的问 题(请谨慎使用)。 4.下载地址:http://www.charlesproxy.com/download/
修改前
修改后
看到的这个输入框能通过测试,那么它背后 看不到的那个“输入框”能通过测试么?
前端的输入框作了验证并不代表后台的接口也同 样作了验证,所有我们有必要绕开前端,直接调 用后台接口输入非法数据。如果此时的-99传入 接口,服务器返回成功。那么买就变成了卖,就 可获得无限的游戏币了。这个游戏以前有这个 BUG,后来改好了。
打开Charles在游戏中拍蚊子。 。
返回数据属 性
捕获得拍蚊子的请求。 。
关于这些数据 的属性到底代 表什么,在下 面的例子中介 绍。其实自己 改改就知道了 上传数据属 性
返回数据的 查看方式 程序设定一天最多获得300点互动经验
不作任何修改, 重发送99条请求。 。
这是最终的结果,增加了300exp。
修改后
要想给自己种草这里我们就要 将好友的游戏ID和帐号全部替 换成自己的。 这里的key,昵称,系统时间都 是可以忽略,不必管它们。
发送
重复发送成功的请求两次,会在 0,1,2,3,4,5号地种两棵草。
发送请求后,查看请求返回的结果,可以分析请求是否发送成功?
Charles示例—更改ID Charles示例—更改ID 示例
启用
帮助 添加一个新的 删除选中
指定排除不需 要录制的主机
如果启用了排除,那么 charles只会排除录制当前 设定主机上的请求,不会 影响其它数据的录制。
重复发送选中记录
3
重复多次发送选中记录 修改
删除选中记录
修改捕获的请求
删除所有记录
修改是最常用的功能之一。 删除是删除所有捕获的记录,使用时要注意。
重复次数 并发次数
基本操作—分析数据
1
2 这是捕获到的请求从服务器返回的数据。(可 以在该返回数据中分析出请求是否成功,例子 作详细介绍)
现在捕获到了一个请求,试着来分析下^_^从上往下看 (注意:Charles的请求是自动捕获)
1.
首先看到的是Request:客服端上传至服务器的数据。(上传的数据是非常重要的,为了做好测试我们要弄懂,如 果看不懂可以请教负责的接术人员) 2. 上传的数据当中, name(网络协议名称)type(类型)、value(值)非常重要。 3. AMF Message(AMF协议是基于Http协议的网络协议,是flash和flex中remoting的一种方式格式) 4. AMF下面是一个头文件,一般不需要去关注。 5. Body是最重要的部分,每个请求的Body都有可能不一样这个是由开发人员定义好了,具本可找相关人员了解 6. 现在看重点:fightService .operPlant(这是该条请的接口名称,可以明显看出这是一些有意义的名字, fightService:战斗服务,plant:种植,连起来就是战斗服务中的种植物的接口) 剩下的在下面的例子中作详细介绍 ^_^
选择好安装目录
完成安装
基本操作—新建、删除、保存等
2 1
1.树状显示有利于看情请求的数据结构,如果在 数据多的情况下建意用树状查看捕获的请求。 2.序列在修改请求的时候看起来比较方便,依据 喜欢自己选择。 Charles捕获的请求只能在目标链接没关闭的情况下使用。 。 相当于只能使用一次,所以保存的数据能能用来分析。 4
接口测试简介
什么是接口测试
接口测试,是指针对前后台进行的测试, 是对常规测试的一种补 充.
接口测试wenku.baidu.com重要性
实现一些常规测试中无法实现的流程 修改各参数检查服务器异常处理 修改请求的先后次序检查服务器处理流程
接口测试工具
Charles是基于HTTP传输的XML、AMF、HTML的测试工具 WPE是基于Sockes传输的TCP、UDP的网络封包编辑工具
例举一个简单的例子,作 为开始,下面将将慢慢深 入。
Charles示例— Charles示例—更改请求状态 示例
游戏名称:植物战怪兽 运行平台: www.4399.com
实例描述:通过修改防御型植物状态,达到给防御型植物加血的效果
注 意:在做接口测试的时候要了解各个游戏功能的各种状态, 这样更有利于发现问题
发送请求数量 并发请求数量 并发基于请求数 新窗口打开并发
上面例子是4399开心车位商城没有处理并发 的问题。
高级操作—指定录制、排除录制
任何字段可以为空,在这种情况下, 他们将匹配任何值。 指定需要包 含的主机 传输协议 主机 IP 端口 双击可修改 最终设定的需要录制的路径 需要录制的路径 如果启用了指定录制,那 么charles只会录制当前设 定主机上的请求,不会捕 获另外的任何请求或是数 据。
刷 新 游 戏 可 看 到 植 物 为 满 血
修改后
选中需要修改的请求,再点击修改按钮。 将植物状态修改成1,并发送。
Charles示例—更改UID Charles示例—更改UID 示例
游戏名称: QQ农场 运行平台: www.qzone.qq.com 实例描述:通过修改游戏UID实现玩家在自己农场种草、除草。
修改前 任务接口
植物2更新任务系统,在做 接口测试的时候发现一个典 型的接口错误。
任务ID
背包查看获得的道具
重复发送该 请求30次, 验证该任务 是否可以重 复领取奖励?
背包查看获得的道具, 明显可看出得到了30 个道具.
做接口测试的时候,一定要了解道具的分 类,游戏中有些什么特殊道具,游戏中不 出售的道具。(很大的可能出售的道具和 不出售的道具放在同一张表中,请向往下 看)
注 意:替换UID在接口测试中是必不可少的,涉及UID的接口 按需求进行测试。
Id=0 Id=1 Id=2 Id=5 Id=8 Id=11 Id=4 Id=7 Id=10 Id=3 Id=6 Id=9
种草玩家游戏ID 种草玩家昵称 被种草玩家地ID 被种草玩家帐号 种草玩家帐号 被种草玩家游戏ID 系统时间 被种草玩家昵称 系统随机生成的key
Charles示例— Charles示例—并发 示例
游戏名称:植物战怪兽 运行平台: www.4399.com 实例描述:并发购买道具请求,不扣除游戏币。

意:并不是真正的并发
测试要点—并发请求 Charles可以连续发送请求,也可以并发发送 请求。在测试的时候要注意一种情况那就是 并发。
程序没有处理并发可能会有的情况,在商城 购买物品,不扣除游戏币或是少扣游戏币。
游戏名称:植物战怪兽 运行平台: www.4399.com 实例描述:通过重复请求完成任务奖励刷得无限RMB、游戏币、道具、 稀有道具。 注 意:简单的问题,容易被人遗忘。
首先在每日任务完成任意一个任务。
进行第二项修改任务ID,验证在未 成任务的情况发完成结果,程式否 增加判断?
修改后
刷新任务可以看到未完成 的任务,现在以完成。 打开charles->领取奖 励。 查看捕获的请求,并分析、修改。
WEB服务器 浏览器 客户端
代理工具
图: 代理原理
基本操作—安装,破解步骤
下载好安装文件破解文件
破解步骤: 破解步骤:
1.在安装文件中打开crack文件夹; 2.打开crack文件夹中的patcher.jar文件; 3.点击.browese浏览charles安装目录; 4.在charles目录中找到lib中的charles.jar 打开; 5.返回点击.patch!按钮; 6.提示破解成功; 7.打开charles,点击标签help选择register,输入任意注册 码,确定,破解完成。
Charles示例— Charles示例—重复请求已完成数据 示例
游戏名称:QQ牧场 运行平台:www.qzone.qq.com 实例描述:捕获拍蚊子的请求,重复发送获得当日的300点 注 意:重复请求完成数据程序不加判断,在项目中经常有。
声明:此实例本人不知道腾讯的测试员是否 考虑影响游戏的整体的性能,而没有增加判 断。只是通过该问题举例接口测试,请勿在 游戏中使用。
进入好友农场,在第11块地上种一棵草。
修改前
分析捕获的种草请求,以便下步的修改。 刷新自己 的农场后,可以 看到6格地都种 满了草。将自己 种的草除掉同样 可以获得经验。 当然在这里只是 说一种测试的方 法,这个BUG的 意义并不大,因 为只能种50次, 这个是程序加了 的判断。 修改请求,主要是修改帐号和游戏ID。
相关文档
最新文档