利用lr测试客户端发起的动态变化数据

上一篇 / 下一篇  2011-09-27 10:40:18 / 个人分类:loadrunner

最近测试的项目需要使用工具产生大批量由客户端向服务器端发起的数据,基本过程如下。访问电商网站,访问中每次页面点击都会调用php程序,程序获取客户端的cookies,session等数据,从而发起一串经过处理的字符串给服务器端。需求是不断产生cookies,session,时间等参数变化的请求,自然越多越好。其目的并不仅仅是测试服务器压力,而是测试服务器处理大并发量请求的正确稳定性。
开始使用web(http/html)脚本协议录制回放后发现,脚本中每次页面点击都产生了希望看到的请求,但是字符串都是死的,这样在回放的过程中,每次请求都是固定的值,不是我想要的结果,怎么解决该办法呢?
首先我想到的自然是利用关联。但关联往往用在客户端接收服务器传来的动态数据。要弄清楚传参的整个过程需要费一点时间,并且该次测试并不关注于响应时间这样的数据,所以另寻办法找到了和web(http/html)类似的web(click and script)脚本协议。该协议的录制过程中会记录页面鼠标键盘的所有操作。简而言之,前者记录所有后台发起的请求,后者记录所有前台发起的请求,再转换成后台请求。后者多了一步经过服务器响应转换的过程,自然效率要大打折扣了。
录制回放的过程中又再次遇到了问题,会经常出现image not found以及"一个或多个activex控件无法显示"这样的错误,导致回放无法继续进行。一头雾水之后,仔细看了下replay log,出现image not found 报错后lr给出了友情提示,建议使用ajax(click and script)脚本协议。原来是由于web协议对于ajax的支持有限造成的错误。之后产生的脚本如下
 web_text_link("首页",
  "Snapshot=t144.inf",
  DESCRIPTION,
  "Text=首页",
  "Ordinal=1",
  ACTION,
  "UserAction=Click",
  LAST);


 web_text_link("生活电器",
  "Snapshot=t145.inf",
  DESCRIPTION,
  "Text=生活电器",
  ACTION,
  "UserAction=Click",
  LAST);
这样每次click都能产生动态变化的数据发给服务器,成功在望。最后需要解决的是cookies自动生成的问题。想到web_add_cookie()这样的函数,并且写了一个随机字符串的函数。让每次迭代之前都强加一个cookies,自然达到了目的。后想,其实lr生成的每次并发都会自带一个cookies,如果在每次迭代之后把cookies更新不就更容易么。天无绝人之路,web_cleanup_cookie()方法帮我解决了这一问题,在脚本最后加上这个函数。运行后,大功告成。奇功一件。


TAG: LoadRunner loadrunner 客户端 一个或多个 activex控件 发起

引用 删除 雨夜之月   /   2012-02-12 21:46:47
5
小小猫的个人空间 引用 删除 chengwenxian   /   2011-09-27 11:13:33
5
 

评分:0

我来说两句

日历

« 2024-04-15  
 123456
78910111213
14151617181920
21222324252627
282930    

数据统计

  • 访问量: 6238
  • 日志数: 8
  • 建立时间: 2011-04-14
  • 更新时间: 2011-11-30

RSS订阅

Open Toolbar