人的差别在于业余时间,而一个人的命运决定于晚上8点到10点之间。 北京安全测试精英QQ群:164265622 北京白盒测试精英QQ群:164265999 北京性能测试精英QQ群:164266156 北京自动化测试精英群:212723528 北京软件测试精英QQ群:86920845

loadrunner学习之一:从XML文件读取数据

上一篇 / 下一篇  2011-12-07 15:49:10 / 个人分类:性能测试

在做性能测试和稳定性测试时,不要以为录制了脚本后就可以测试了,要检查脚本,并对脚本进行分析,我是对每个选项进行了仔细的研究,结果测试代码,终于搞明白了选项的意思。
以下是我的一点经验,希望对您有所帮助:
  • 要加思考时间

    

  • 要掉Clear Cache On each iteration的选项

    

  • 如果是B/S应用,要去掉B/S应用的监视日志,否则会占大量空间
  • 该参数化时要参数化,注意在随机参数时,需要设为一次性,否则会出现重复登录的情况。

    

  • 激活点一定要设在事务之外。

   

  • 要脚本中,要删除一些标志性的,比如我的应用,是用的Form验证方式,结果录制的时间居然将登录后的全部记录了下来,导致测试时仍用的录制时的用户名在操作。
  • 要研究一下脚本,必要时需要自已写一些脚本(这个功能充分显示出其强大),我就写了一段LoadRunner的脚本,让他可以读取xml文件配置,在运行时可以根据登录者进行选择数据。
1.配置文件"c:\\hfeitest.xml"
<users>
 <user>
  <name>abc0015admin0</name>
  <productId>B001261</productId>
  <unitId>A0000Q1</unitId>
  <customerId>B00141</customerId>
  <supplierId>B001262</supplierId>
  <storeId>B001162</storeId>
  <accountId>B001162</accountId>
  <employeeId>A00010</employeeId>
  <departmentId>A00010</departmentId>
  <paymentMethodId></paymentMethodId>
 </user>
</users>
2.代码
#i nclude "as_web.h"
 
char *productId;//产品
char *unitId;//计量单位
char *customerId;//客户
char *supplierId;//供应商
char *storeId;//仓库
char *accountId;//帐号
char *employeeId;//职员
char *departmentId;//部门
char *paymentMethodId;//付款方式
//作者:黄飞
//日期:20080216
//功能:根据传入用户参数,初始化产品等变量配置,达到动态获取参数的目的
initData(char userId)
{
 char *filename = "c:\\hfeitest.xml";
 char *content;
   char buffer[1000];
 long file_stream;
   
   if ((file_stream = fopen(filename, "r" )) == NULL) {
  lr_output_message("Unable to create %s", filename);
  return -1;
   }
 lr_save_string(lr_eval_string(""),"XML_Input_Param");
 while(!feof(file_stream))
 {
  fread(buffer, sizeof(char), 999, file_stream);
 buffer[len] = '\0';
  lr_save_string(buffer,"content");
  lr_save_string(lr_eval_string("{XML_Input_Param}{content}"),"XML_Input_Param");
 }
   fclose(file_stream);
 lr_output_message(lr_eval_string("{XML_Input_Param}"));
 lr_output_message(lr_eval_string("{userId}"));
   lr_xml_get_s("XML={XML_Input_Param}",
         "Param=OutputParam",
         "Query=/users/user[name=\"{userId}\"]/productId",
         LAST);
   lr_save_string(lr_eval_string("{OutputParam}"), "productId");
 lr_xml_get_s("XML={XML_Input_Param}",
         "Param=OutputParam",
         lr_eval_string("Query=/users/user[name=\"{userId}\"]/unitId"),
         LAST);
 lr_save_string(lr_eval_string("{OutputParam}"), "unitId");
 lr_xml_get_s("XML={XML_Input_Param}",
         "Param=OutputParam",
         lr_eval_string("Query=/users/user[name=\"{userId}\"]/customerId"),
         LAST);
 
 lr_save_string(lr_eval_string("{OutputParam}"), "customerId");
 lr_xml_get_s("XML={XML_Input_Param}",
         "Param=OutputParam",
         lr_eval_string("Query=/users/user[name=\"{userId}\"]/supplierId"),
         LAST);
 lr_save_string(lr_eval_string("{OutputParam}"), "supplierId");
 lr_xml_get_s("XML={XML_Input_Param}",
         "Param=OutputParam",
         lr_eval_string("Query=/users/user[name=\"{userId}\"]/storeId"),
         LAST);
 lr_save_string(lr_eval_string("{OutputParam}"), "storeId");
 lr_xml_get_s("XML={XML_Input_Param}",
         "Param=OutputParam",
         lr_eval_string("Query=/users/user[name=\"{userId}\"]/accountId"),
         LAST);
 lr_save_string(lr_eval_string("{OutputParam}"), "accountId");
 lr_xml_get_s("XML={XML_Input_Param}",
         "Param=OutputParam",
         lr_eval_string("Query=/users/user[name=\"{userId}\"]/employeeId"),
         LAST);
 lr_save_string(lr_eval_string("{OutputParam}"), "employeeId");
 lr_xml_get_s("XML={XML_Input_Param}",
         "Param=OutputParam",
         lr_eval_string("Query=/users/user[name=\"{userId}\"]/departmentId"),
         LAST);
 lr_save_string(lr_eval_string("{OutputParam}"), "departmentId");
 lr_xml_get_s("XML={XML_Input_Param}",
         "Param=OutputParam",
         lr_eval_string("Query=/users/user[name=\"{userId}\"]/paymentMethodId"),
         LAST);
 lr_save_string(lr_eval_string("{OutputParam}"), "paymentMethodId");
 lr_output_message(lr_eval_string("UserNamaID={userId} and Query productId = {productId}"));
 lr_output_message(lr_eval_string("UserNamaID={userId} and Query unitId = {unitId}"));
 lr_output_message(lr_eval_string("UserNamaID={userId} and Query customerId = {customerId}"));
 lr_output_message(lr_eval_string("UserNamaID={userId} and Query supplierId = {supplierId}"));
 lr_output_message(lr_eval_string("UserNamaID={userId} and Query storeId = {storeId}"));
 lr_output_message(lr_eval_string("UserNamaID={userId} and Query accountId = {accountId}"));
 lr_output_message(lr_eval_string("UserNamaID={userId} and Query empoyeeId = {empoyeeId}"));
 lr_output_message(lr_eval_string("UserNamaID={userId} and Query departmentId = {departmentId}"));
 lr_output_message(lr_eval_string("UserNamaID={userId} and Query paymentMethodId = {paymentMethodId}"));
}
vuser_init()
{
 char userId;
 lr_save_string(lr_eval_string("{username}"), "userId");
   initData(userId);
...
}

TAG:

 

评分:0

我来说两句

Open Toolbar