如何调试脚本,解决脚本回放成功但失败的情况

上传人:wt****50 文档编号:34299532 上传时间:2018-02-22 格式:DOC 页数:10 大小:4.58MB
返回 下载 相关 举报
如何调试脚本,解决脚本回放成功但失败的情况_第1页
第1页 / 共10页
如何调试脚本,解决脚本回放成功但失败的情况_第2页
第2页 / 共10页
如何调试脚本,解决脚本回放成功但失败的情况_第3页
第3页 / 共10页
如何调试脚本,解决脚本回放成功但失败的情况_第4页
第4页 / 共10页
如何调试脚本,解决脚本回放成功但失败的情况_第5页
第5页 / 共10页
点击查看更多>>
资源描述

《如何调试脚本,解决脚本回放成功但失败的情况》由会员分享,可在线阅读,更多相关《如何调试脚本,解决脚本回放成功但失败的情况(10页珍藏版)》请在金锄头文库上搜索。

1、1 背景1.1 讲 一 个 故 事以前我们公司招了一个自称非常熟练loadrunner的员工,有一次分配给他测试 sso单点登录系统的性能测试。登录一个网站A,需要输入用户名密码,然后在访问另一个网站B ,因为在网站 A已经登录过,所以B应该不需要再登录,直接就可以访问B 页面。让该员工测试下可以支持多少用户,及稳定性。该员工使用loadrunner测试了2天,然后给我们报告说支持 320左右个用户并发。然后,我们跟他一起验证下,确实在320并发时就出现用户失败。但检查系统A与B,发现A确实登陆了,但B 没有数据,后面他定位了半天也没解决问题,最后我帮他定位下,结果发现是发给B系统请求B 页面

2、的HTTP的会话信息里没有包括用户已经登陆的信息,会话在Cookie 与URL的参数都存在。还有另外一个问题,当时由于没研究loadrunner是如何模拟用户的,后来参与开发了kylinPET性能测试工具,才对性能工具的原理有深入的了解。其实之前 loadrunner工具测试的并发用户数最大支持320,是错误的,大家可以看我写的“如何测试服务器的最大并发数”,网址:http:/ 该 故 事 说 明 了 什 么该 故 事 说 明 了 , 一 个 熟 练 loadrunner的 人 进 行 系 统 性 能 测 试 , 还 是 出 现 花费 了 2天 多 的 时 间 是 白 费 的 , 因 为 实

3、际 B系 统 还 需 要 登 录 , 因 此 无 法 访 问 B页 面。为 什 么 呢 , 因 为 他 对 业 务 了 解 不 透 , 还 有 认 为 loadrunner回 放 通 过 就 表 示脚 本 没 问 题 , 虽 然 他 做 了 一 些 关 联 参 数 , 但 脚 本 其 实 还 是 错 误 的 。 因 此 , 会 使用 性 能 测 试 工 具 只 是 一 项 技 能 , 真 正 掌 握 性 能 测 试 , 还 需 要 结 合 业 务 与 协 议 、网 络 知 识 , 另 外 还 需 要 掌 握 测 试 工 具 调 试 脚 本 方 法 。1.3 在 网 络 上 经 常 出 现 求

4、助 帖 : 测 试 工 具 脚 本 回 放成 功 , 但 实 际 是 失 败在 网 络 论 坛 上 经 常 出 现 求 助 帖 : 测 试 工 具 loadrunner或 jmeter的 脚 本 回 放成 功 , 但 检 查 后 台 , 数 据 不 存 在 或 用 户 其 实 没 登 陆 。很 多 测 试 人 员 对 系 统 不 了 解 , 有 不 懂 HTTP协 议 , 也 不 了 解 网 页 怎 么 产 生的 , 然 后 就 使 用 测 试 工 具 进 行 测 试 ; 有 些 人 员 会 检 查 后 台 发 现 脚 本 有 问 题 , 但不 会 定 位 ; 有 些 经 验 丰 富 的 人

5、, 知 道 怎 么 调 试 脚 本 , 验 证 脚 本 , 并 定 位 问 题 修改 ; 然 而 , 有 些 新 手 或 经 验 不 足 的 测 试 人 员 会 出 现 做 无 用 功 , 而 且 还 不 知 道 自己 做 了 无 效 的 性 能 测 试 , 因 为 他 认 为 测 试 工 具 回 放 成 功 就 表 示 OK。其 实 , 很 多 开 发 人 员 或 设 计 人 员 也 不 能 完 全 了 解 被 测 系 统 , 另 外 也 不 了 解HTTP协 议 , 因 为 HTTP是 底 层 的 , 都 被 封 装 了 , 如 spring开 发 基 本 就 不 需 要了 解 HTTP。

6、 所 以 , 测 试 人 员 要 掌 握 一 些 基 本 知 识 , 如 HTTP协 议 、 基 本 的 网络 知 识 , 还 有 掌 握 系 统 架 构 、 场 景 、 还 有 业 务 流 程 , 也 是 很 有 技 术 含 量 的 。 对于 WEB学 会 使 用 浏 览 器 调 试 功 能 或 httpwatch了 解 系 统 业 务 交 互 流 程 , 学 习 HTTP。 如 果 有 这 样 的 基 础 , 使 用 性 能 测 试 工 具 调 试 脚 本 就 事 半 功 倍 啦 。2 介绍怎么调试脚本(这里只介绍WEB)很多测试人员或开发人员对HTTP或HTML不熟悉,很大可能还不了解业

7、务细节,所以自己修改脚本有一定的难度,需要借助工具提供的调试功能来调试脚本。主要解决业务动态的地方:参数化、关联参数、Cookie。2.1 测试工具怎么判断脚本失败当如下情况发生时:1) 发送请求消息参数化失败2) 出现响应码错误,如收到500、505等错误码3) 出现超时,请求HTTP,但它的响应时间超过期望时间4) 建立TCP连接失败2.2 脚本回放成功并不代表业务成功一个脚本执行成功通过上面条件判断是不够的,因为可能存在这样的情况,登录成功,服务器回302定位到正常页面;登录失败,服务器回302或200定位到错误页面或登录页面。登录失败时,其实所有HTTP请求都是成功的,只是业务失败,所

8、有根据上面条件,测试工具会认为脚本执行成功。如下图,登陆失败跳到error.jsp,但响应码是302。如:如果没有判断响应码或检查页面内容(检查点),则测试工具会认为脚本正常,继续请求已录制的后面的HTTP请求,但其实脚本已经失败,因为业务失败啦,没出现正常页面。这种情况是常发生的,即得到的内容或页面不是正常的。很多工具只提供检查页面内容,没有提供检查响应码,但没经验的测试人员,可能不会设置或忽略设置,因为脚本执行成功,他认为脚本没问题,这将导致性能测试无效。loadrunner不支持检查响应码但支持设置检查点,kylinPET支持检查响应码与检查点,响应码自动根据录制设置。2.3 脚本回放成

9、功,需进一步验证脚本回放成功后,还需要进一步验证,验证方法:2.3.1 检查服务器在服务器上查看数据是否正确,如检查用户提交了数据是否存在;但只有用户提交数据并保存到数据库或日志才可以检查,很多系统可能没用户提交,用户只是获取数据,但可能存在由于参数错误,获取的数据失败,如获取json内容错误(HTTP仍然是回200)所以,检查服务器并不是最好的方法,因为有些系统可能无法检查。2.3.2 检查HTTP响应日志检查回放脚本是的HTTP交互日志,分析是否正确,这个要求技能比较高,需要知道内容结构及看得懂内容,一般测试人员达不到。所以,检查日志方法要求技能高些,要能读懂内容,及明白响应内容的意思。2

10、.3.3 对比录制与回放日志这个比直接检查回放的响应日志要方便多,通过对比出不同的地方,判断录制与回放那里不一样,来定位问题。简单的内容(如一些参数)通过比较可以确定需要关联,但有些复杂的需要了解HTTP协议与明白响应内容。2.3.4 直接检查图形页面,直观判断是否业务不正常将回放数据直接展示为图形界面,测试人员通过图形一目了然即可判断页面是否正常,从而确定脚本是否正确。这是最后的验证方法,但页面只能让用户知道脚本是否正确,如果出问题,还需要查看日志,最好能结合“对比录制与回放日志”。2.4 性能测试工具的调试脚本介绍由于本人精通kylinPET(开发者),用过loadrunner,所以这里只

11、介绍这两个工具如何调试脚本。2.4.1 Loadrunner11检查HTTP 响应日志与检查页面方法1) 录制后点击左边的回放验证然后在右边出现录制与回放的页面,双击可以弹出放大比较页面,可以轻松判断页面是否不一样。2) 点击工具栏的“Tree View”树形视图然后点击窗口的HTML View(图形)与HTTP View(文本)来查看页面与响应内容注意:1、 如果你的页面有activeX控件或者 javascript脚本,loadrunner没法展示,即不支持解析activeX控件或者javascript来展示界面,如果你的网页是由activeX控件或者javascript 生成界面的,无法

12、支持。2.4.2 kylinPET2.0检查HTTP响应日志与检查页面方法1) 回放时打印每个HTTP 请求与响应日志2) 点击 “比较 ”按钮比较录制日志与回放日志不同之处红色标识方便定位问题。点击左边定位到对应的HTTP请求,然后红色表示有不同,通过比较可以看到登陆的Post请求的内容响应码一个是200,一个是302,且提交的参数不一样,即可定位出问题。3) 浏览器验证页面kylinPET没有loadrunner的解析HTML与CSS展示为页面的功能,但实现了使用浏览器验证页面的功能,浏览器自己支持解析HTML与CSS,还支持解析activeX控件或者javascript来展示页面,页面展

13、示比loadrunner更精确。点击“页面验证” 按钮,在弹出的窗口,点击kylinPET认为有html的URL来展示对应的页面2.4.3 kylinPET2.0与loadrunner从两个软件调试脚本功能的比较,可以看出kylinPET更加方便与精确,kylinPET 有一个“kylinPET WEB业务Scripter 介绍”视频,里面有大部分内容详细介绍了如何调试脚本。2.5 关联脚本执行成功,但业务却失败的原因,基本是提交的参数或内容有问题、或者会话有问题;例如,录制时的会话为1,该会话由服务器随即产生,每次都变化;但回放时,由于服务器产生新的会话值2,如果使用录制的会话值1,将导致业

14、务失败。会话一般存在Cookie ,也有些系统存在参数。因此,测试人员需要学会使用性能测试工具进行关联。2.5.1 Loadrunner11关联方法1) 手动关联录制两次,然后将两次产生的脚本复制到一些文本比较工具(例如 UltraEdit软件),对不同之处手动参数化。2) 自动关联将脚本进行回放,然后通过回放日志与录制日志进行比较,然后点击自动关联,选择内容进行关联。3) 链接网址详细操作参照下面网址:http:/ kylinPET2.0关联方法1) 手动关联(不建议使用)录制两次,然后将两次产生的脚本(文本视图)复制到一些文本比较工具(如 UltraEdit),对不同之处手动参数化。2)

15、对两次录制日志比较关联连续录制两次,然后都保存为脚本,然后打开其中一个脚本,在工具栏点击“比较”按钮,选择另一个脚本,自动实现两个脚本比较,然后点击“关联参数”按钮,在弹出的窗口里选择需要关联的内容,自动修改脚本对应的地方,并直接替换脚本存在该内容的地方。比手动关联效率高,且更精确,而且可以选择针对性比较的HTTP请求。3) 自动关联类似loadrunner,将脚本进行回放,然后通过回放日志与录制日志进行比较,自动关联,操作方式与录制两次脚本一样。不同于loadrunner是界面有红色标识不同的地方,用户一目了然,更加方便。3) 详细操作参照kylinPET安装目录下的help目录里的文档“kylinPET HTTP(WEB)业务使用指导 .chm”的“2.5 自动关联参数”一节kylinPET视频教程“kylinPET WEB业务Scripter介绍”里有演示关联,网址:http:/ 总结验证脚本是否正常是性能测试最关键的一步,如果脚本不对,将导致你的性能测试都无效,即做了无用功。因此,学会调试脚本非常有必要,调试脚本就是不断的“回放-关联 -验证页面”,直到页面正确。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 社会民生

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号