LR排错的一个实例-Zee
2008-01-11 20:46
489 查看
问题出现
只是浏览两个AJAX页面。脚本经过关联等编辑后,在vugen里回放没有问题,添加到controller里运行2个用户会出现一个用户失败的现象,但不是每次都出现,每运行三次,大概有二次会出现这样的现象。没有思考时间,没有pacing设置。如果运行500用户就会有300以上的用户会出错。
排错
打开LOG,选择:总是发送消息。再次回放,查看出错vuser的LOG,看到在脚本101行出错,具体代码不再给出。只是请求了一个servlet。因为在vugen中回放没有出错,排除了脚本的问题。
再次选择LOG,选择:Data returned by server,再次在controller中运行一次。查看出错vuser的LOG,查看response值为一个java异常。
提交到开发,检查该行代码。
原因解释
代码中,用(Token+两位随机值)来确认client的身份是否唯一。但token的生成是依赖一个name变量。在这个应用中,name的变量为同一值。故生成的token也为同一值。那么导致的结果就是只有随机值来确认client的唯一身份。如何生成随机值这里不再讨论,但导致的结果是生成两位随机值相同的概率很大。故出现以上错误。
解决办法
增加随机值的长度。
至此,问题解决。
只是浏览两个AJAX页面。脚本经过关联等编辑后,在vugen里回放没有问题,添加到controller里运行2个用户会出现一个用户失败的现象,但不是每次都出现,每运行三次,大概有二次会出现这样的现象。没有思考时间,没有pacing设置。如果运行500用户就会有300以上的用户会出错。
排错
打开LOG,选择:总是发送消息。再次回放,查看出错vuser的LOG,看到在脚本101行出错,具体代码不再给出。只是请求了一个servlet。因为在vugen中回放没有出错,排除了脚本的问题。
再次选择LOG,选择:Data returned by server,再次在controller中运行一次。查看出错vuser的LOG,查看response值为一个java异常。
提交到开发,检查该行代码。
原因解释
代码中,用(Token+两位随机值)来确认client的身份是否唯一。但token的生成是依赖一个name变量。在这个应用中,name的变量为同一值。故生成的token也为同一值。那么导致的结果就是只有随机值来确认client的唯一身份。如何生成随机值这里不再讨论,但导致的结果是生成两位随机值相同的概率很大。故出现以上错误。
解决办法
增加随机值的长度。
至此,问题解决。
相关文章推荐
- LR中错误代号为27796的一个解决方法-Zee
- 一个简单实例的LR分析过程
- 一个简单实例的LR分析过程
- 如何让Qt应用程序只有一个实例
- 一个简单的ajax实例:ajax与struts2实例
- 利用HttpModuler实现WEB程序同一时间只让一个用户实例登陆
- 程序扩展性的一个实例(下)
- 一个工程实例来学习 Makefile
- C# Windows 桌面应用只运行一个实例(总结)
- Android Google Map实例 - 创建一个Google Map例程(Android mapview)
- 一个前端与后端分离的架构实例
- 程序只能运行一个实例方法
- 如何在 .net 中只运行一个进程实例?
- 一个Android应用程序App中存在多少个Context实例对象呢
- 在VC++实现控制程序只运行唯一一个实例
- 一个实例讲明为什么要使用内部类
- 每天一个JavaScript实例-铺货鼠标点击位置并将元素移动到该位置
- 手动计算Q-Learning的一个实例
- 程序运行一个实例
- Python+tkinter使用80行代码实现一个计算器实例