发布新日志

  • 解决loadrunner 脚本和replaylog中的中文乱码问题

    2012-04-26 17:37:23

    解决这个问题必须认识到一个事实就是,loadrunner和测试服务器交换数据使用的是utf8格式,但是展现在replaylog中是使用gb2312格式,而且在脚本中如何使用web_reg_find的时候也是使用的是gb2312格式,所以知道这个原理后,事情就好办多了。

    1.获取测试服务器提供的utf8格式的文字并且转换成gb2312格式展现出来
            web_reg_save_param_ex(
              "ParamName=aa",
              "LB=ProductName",
              "RB=ProductBriefName",
              "NotFound=warning",
              SEARCH_FILTERS,
              LAST)     ;    


         web_url("web_url",
              "URL=http://124.238.214.65:70/Scripts/Home/HomeHotProduct.js",
              "TargetFrame=",
              "Resource=0",
              "Referer=",
              LAST);
        lr_convert_string_encoding(lr_eval_string("{aa}"),"utf-8","gb2312","str");
    lr_output_message(lr_eval_string("{str}"));



    2.本地的gb2312的中文经过转换成utf8发给测试服务器

           lr_convert_string_encoding(lr_eval_string("智能手机"),"gb2312","utf-8","a1");
              web_reg_save_param_ex(
              "ParamName=aa",
              "LB={a1}",
              "RB=",
              "NotFound=error",
              SEARCH_FILTERS,
              LAST);

              web_url("IndexCategoryProductJson.js",
              "URL=http://124.238.214.65:70/Scripts/Home/IndexCategoryProductJson.js",
              "Resource=1",
              "RecContentType=application/x-javascript",
              "Referer=http://124.238.214.65:8081/",
              "Snapshot=t24.inf",
              LAST);






  • .net 开发环境 实现loadrunner对ajax的支持

    2012-04-26 17:27:23

    .net 开发环境 实现loadrunner对ajax的支持

    我们公司开发了一套电子商务网站,为了防止用户工具在很多地方程序都采取了对ajax请求的判断,也就是说服务器判断不是ajax的请求就不提供正常的工作。

    loadrunner对javascrip和ajax的处理能力非常有限,用录制脚本的方式无法记录用户的动作,查了网上的一些文档得到的结论,是不管你客户端是什么工具,真正在服务器端收到的都是http协议的内容,通过这个思路思考下去,只要我能模拟浏览器对服务器的ajax提交请求就能解决这个问题,通过firebug发现服务器是判断客户端请求的header中有X-Requested-With就认为是ajax请求

    判断是否为ajaxRequest 在http请求头中查找是否包含X-Requested-With,并且值为XMLHttpRequest
    
    C# Code
    string sheader = Request.header["X-Requested-With"];
    bool isAjaxRequest = (sheade != null && sheader == "XMLHttpRequest") ? true : false;
    所以只要在协议为ajax的脚本中在关键位置前插入 web_add_heade就能实现loadrunner对ajax的伪造
         web_add_header("X-Requested-With","XMLHttpRequest");
        
         web_custom_request("31",
              "URL=http://{ip}/UserHome/AddPromotionReserve/34",
              "Method=POST",
              "Resource=0",
              "RecContentType=text/html",
              "Referer=http://{ip}/UserHome/UserInfo",
              "Snapshot=t214.inf",
              "Mode=HTTP",
              "EncType=",
              LAST);
  • 如何在Loadrunner中监控linux服务器的性能

    2011-05-03 10:02:58

    公司使用的服务器是linux的操作系统,之前很长一段时间监控系统参数都是使用top等linux命令来监控

    这样做的好处
    1.可以非常容易的监控的系统的状态
    2.实时性非常强
    不足之处
    1.不能和loadrunner其他的图表进行合并,造成了很难在事后分析出系统的问题
    2.监控系统的数据无法直接保存,供下次参考使用
    最近终于说服了公司的sa,让我能在性能测试环境做必要的设置,因为之前sa一直认为我要做的事情会对系统的安全性造成影响。

    现在我来介绍一下如何在linux设置来完成loadrunner对服务器性能的监控

    A.验证服务器上是否配置了rstatd守护程序

    1. rup 127.0.0.1
    2.find / -name rpc.rstatd
    3./usr/sbin/rpcinfo -p

    B.下载rpc.rstatd

    http://sourceforge.net/projects/rstatd

    C.打开端口映射

    1.执行 setup命令
    这时会弹出一个类似图形化的界面,光标移动到System services,回车。在新界面中找到portmap项,空格选中。然后选择OK,再选择quit。
    2./etc/rc.d/init.d/portmap start   //启动portmap

    D.编译安装rstatd

    ./configure
     make all-am
     make install-am

    E.起rstatd服务

    /usr/local/sbin/rpc.rstatd

    F.安装xinetd服务

    yum install xinetd.i386
    /sbin/service xinetd restart
    好了,liunx中的设置基本上都已经设置完了,接下来只要到loadrunner中加上对相应服务的监控就可以了

Open Toolbar