`
zz563143188
  • 浏览: 2274552 次
  • 性别: Icon_minigender_1
  • 来自: 珠海
博客专栏
77fc734c-2f95-3224-beca-6b8da12debc8
编程工具介绍
浏览量:578614
D9710da2-8a00-3ae6-a084-547a11afab81
Spring Mvc实战(...
浏览量:1087537
D3f88135-07de-3968-a0f0-d2f13428c267
项目开发经验
浏览量:1656799
社区版块
存档分类
最新评论

Loadrunner脚本读取XMl文件

 
阅读更多

 

最近更新列表

1.IBM的aix中安装jdk(7月21更新)
2.Linux(CentOS)中安装jdk (7月21更新)
3.Linux(CentOS)安装weblogic (7月22更新)
4.Aix系统中安装webLogic (7月22更新)
5.IBM实体机aix中创建weblogic域 (7月23更新)
6.linux中通过VNC创建weblogic域 (7月23更新)
7.在RedHat 5下安装Oracle 10g详解 (7月24更新)
8.linux启动oracle实例 (7月24更新)
9.linux中通过VNC创建oracle实例及网络监听 (7月25更新)
10.linux中关闭ip6的方法 (7月25更新)
11.Jconsole、jvisualvm工具介绍
12.Soupui调用webservies帮助文档
13.Loadrunner 调用Webservice接口测试优化
14.Loadrunner脚本读取XMl文件
15.使用Xmanager远程Aix系统
16.Xmanager图形化远程到aix系统
17.将普通jar文件打包成osgi bundle的方法
18.代码检查规范Checkstyle配置
19.Webloigc 11g配置集群帮助文档
20.Activemq集群配置文档
21.Apache2.2+tomcat6集群配置
22.修改计算机名导致oracle实例不能启动的解决方案
23.导入带有oracle安装程序的虚拟机需要的配置
24.给tomcat和weblogic启动窗口设置标题
25.Tomcat配置下载服务器
26.win8下开启虚拟机hyper-v功能

27.windows、linux、aix查询端口号被哪个程序占用

28. linux下递归的改变目录权限

29.Apache的配置虚拟目录

Loadrunner脚本读取XMl文件

 

性能测试工程师要懂代码么?答案是必须的,好多测试员认为在loadrunner中编写脚本很难很牛X好多人认为loadrunner只支持C语言(包括我之前也一直这么认为),因为loadrunner默认的脚本是C语言的,其实它支持目前所有主流的语言,如:Java UserVB UserVB script User Javascript UserMmicrosoft .NET等,总有一款适合你的吧,最起码C语言是必修课吧。

 

为了测试方便,下面用C语言来实现读取XML文件,然后通过读取的值进行比较判断。

 

1.运行Virtual User Generator

 

 

2.新建 C User(此代码可用于webservices)保存为b-3

 

 

 3.D盘新建 test.xml文件,内容如下

 

<employee>

 

    <id>[0]</id>

 

    <name>{2}</name>

 

    <add>beijing</add>

 

    <age>20</age>

 

</employee>

4.action中编写读取xml代码

 

5.将下面代码复制到Action中的文件中,即可测试.

 

//***********************代码开始*********************

 

#define  filePath "D:\\test.xml" //定义文件的路径

 

 

 

int lr_loadXml_strcmp(); //申明读取xml的函数

 

int * call_webservices(char * opt1,char *opt2);

 

char *tmpVar="[0]";      //申明一个全局的临时变量指针

 

char *param1="a=3";      //申明调用webservices的第一个参数指针

 

char *param2="b=3";      //申明调用webservices的第二个参数指针

 

int *p_call_webservices;

 

                                                       //

 

Action()  //执行的入口

 

{

 

 

 

       p_call_webservices=call_webservices( param1, param2); // 将函数交给指针

 

       if(lr_loadXml_strcmp()==0) //返回不相等的比较

 

       {

 

                lr_log_message("比较正确,请进行业务处理");

 

                //p_call_webservices; //需要一个webservices提供两个参数进入加运算

 

               

 

       }

 

       else

 

       {

 

                lr_log_message("没有找到相关的处理请求");

 

       }

 

 

 

       return 0;

 

}

 

 

 

//下面这个函数,只是为了演示参数可以指针传递

 

int * call_webservices(char * opt1,char *opt2)

 

{

 

  int j=0;

 

  for (j=0;j<10;j++) {

 

                                            web_service_call( "StepName=add_103",

 

                                   "SOAPMethod=MyServiceImplService|MyServiceImplPort|add",

 

                                   "ResponseParam=response",

 

                                   "Service=MyServiceImplService",

 

                                   "ExpectedResponse=SoapResult",

 

                                   "Snapshot=t1392023302.inf",

 

                                   BEGIN_ARGUMENTS,

 

                                    opt1, //webservice第一个参数,a=3

 

                                    opt2,//webservice第一个参数,b=3

 

                                   END_ARGUMENTS,

 

                                   BEGIN_RESULT,

 

                                   "addResult=Param_addResult", //返回值 a+b的值

 

                                   END_RESULT,

 

                                   LAST);      

 

                                            lr_log_message("dn");

 

                 }

 

  return 0 ;//暂时返回 0

 

}

 

 

 

int lr_loadXml_strcmp()

 

{

 

       long fp; 

 

 

 

       int total = 0;

 

       int readbufsize = 0;

 

       int count = 0;

 

       int i = 0;

 

 

 

 

 

       int NumOfReadbuf_1  = 0;

 

       int NumOfReadbuf_2  = 0;

 

       int NumOfReadbuf_3  = 0;

 

       int NumOfReadbuf_4  = 0;

 

 

 

       int result=0;

 

 

 

 

 

 

 

       char *readbuf;

 

       char *file = filePath;

 

 

 

       //读取XML文件

 

       if ( (fp = fopen(file, "r")) == NULL)

 

       {

 

       lr_message("open logfile failed!\n");

 

       return -1;

 

       } 

 

 

 

       //申请 readbuf

 

 

 

                readbuf = (char*) calloc(50, sizeof(char));

 

       if (readbuf == NULL)

 

       {

 

       lr_message("Insufficient memory available");

 

       return -1;

 

       }

 

 

 

       //循环读取文件

 

       while(!feof(fp))

 

       {

 

                // 扩展缓冲区

 

                if( readbufsize - total <= 10 )

 

                {

 

                readbufsize += 50;

 

                readbuf = (char*) realloc(readbuf, readbufsize);

 

                }

 

 

 

                count = fread(readbuf + total, sizeof(char), 10, fp);

 

 

 

                total += count;         

 

       }

 

 

 

       //关闭文件句柄

 

       fclose(fp);

 

 

 

       //修改readbuf内存值

 

       readbuf = (char*) realloc(readbuf, readbufsize+1);

 

                *(readbuf+total) = '\0';

 

 

 

                //保存参数  

 

                lr_save_string(readbuf,"readbuf_param");

 

 

 

                //读取记录

 

                NumOfReadbuf_1 = lr_xml_get_values("XML={readbuf_param}",

 

         "ValueParam=id",

 

         "Query=/employee/id",

 

                                              "SelectAll=yes",

 

          LAST);

 

 

 

                NumOfReadbuf_2 = lr_xml_get_values("XML={readbuf_param}",

 

         "ValueParam=name",

 

         "Query=/employee/name",

 

                                              "SelectAll=yes",

 

          LAST);

 

 

 

                NumOfReadbuf_3 = lr_xml_get_values("XML={readbuf_param}",

 

         "ValueParam=add",

 

         "Query=/employee/add",

 

                                              "SelectAll=yes",

 

          LAST);

 

 

 

                NumOfReadbuf_4 = lr_xml_get_values("XML={readbuf_param}",

 

         "ValueParam=age",

 

         "Query=/employee/age",

 

                                              "SelectAll=yes",

 

          LAST);

 

 

 

lr_log_message("%s",lr_eval_string("{id_1}")); //xml中的第一个id节点值转为字符串并打印

 

/*lr_log_message("%s",lr_eval_string("{name_1}"));

 

lr_log_message("%s",lr_eval_string("{add_1}"));

 

lr_log_message("%s",lr_eval_string("{age_1}"));

 

*/

 

 

 

       lr_save_string(lr_eval_string("{id_1}"),"getXmlValue");//xml中第一个id节点{id_1}的值给getXmlValue

 

      

 

       //将变量保存为参数,tmp为变量

 

       lr_output_message(lr_eval_string("{getXmlValue}"));

 

        result=strcmp(tmpVar,lr_eval_string("{id_1}"));

 

       if(result==0)

 

       {

 

                lr_output_message("成功取得了数据");

 

      

 

       }else

 

       {

 

                lr_output_message("没有成功取得了数据");

 

       }

 

 

 

    return result; //返回比较后的值 0成功 

 

}

 

 

 

//*************************代码结束

6.run运行后,控制台显示读取的xml数据

 

 

 

 

  • 大小: 11.7 KB
  • 大小: 36.1 KB
  • 大小: 24.5 KB
  • 大小: 29.3 KB
  • 大小: 26.7 KB
分享到:
评论

相关推荐

    用loadrunner读取XML文件中的数据

    通过以上分析,我们可以看到LoadRunner读取XML文件不仅是一项技术操作,更是理解和应用LoadRunner强大功能的关键一步。掌握这一技能,能够使我们在性能测试中更加得心应手,有效应对复杂的数据驱动场景。

    LoadRunner脚本

    LoadRunner 脚本开发详解 LoadRunner 是一个功能强大且广泛应用于性能测试和性能监控的工具,它可以模拟大量用户对应用程序的访问,从而评估应用程序的性能和可扩展性。 LoadRunner 的脚本开发是 LoadRunner 测试...

    如何在LoadRunner 脚本中做关联

    关联是LoadRunner脚本编写中的关键概念,它主要用于处理动态数据,确保每次回放测试时都能正确地模拟实际用户的操作。下面我们将详细探讨为何要在LoadRunner中进行关联,以及如何在LoadRunner脚本中实现这一操作。 ...

    Loadrunner脚本录制下载操作的另外一种简便做法.pdf

    本文将探讨一种解决LoadRunner脚本录制下载操作的简便方法。 通常,当用户点击下载链接时,浏览器会向服务器发送一个请求,该请求的Content-Type可能是"application/octet-stream",表示这是一个二进制流数据,如...

    loadrunner基于ajax脚本开发案例视频专讲解

    总的来说,"loadrunner基于ajax脚本开发案例视频专讲解" 提供了一个学习LoadRunner与Ajax脚本开发的实践机会,涵盖了从基础概念到实际操作的全过程。通过对视频内容的学习,测试工程师能够更好地应对现代Web应用的...

    自动化测试工具LoadRunner V8

    3. 强大的脚本语言:LoadRunner使用Vuser脚本,基于C语言,提供了丰富的函数库,可进行复杂的逻辑控制和数据处理。 4. 分析工具:LR V8提供直观的图表和报告,通过性能指标如响应时间、吞吐量、并发用户数等,帮助...

    loadrunner测试使用帮助文档

    ### LoadRunner 测试工具知识点详解 #### 一、LoadRunner 概述 ...希望初级水平的测试工程师们能够充分利用这份文档,掌握 LoadRunner 的基本使用方法,并在此基础上不断探索更多高级功能和技术细节。

    安装LoadRunner过程中可能会缺失的9个文件

    在进行LoadRunner安装时,可能会遇到一些文件缺失的问题,这些缺失的文件可能直接影响到软件的正常安装和使用。LoadRunner是一款强大的性能测试工具,由Micro Focus公司开发,用于模拟大量并发用户来测试应用系统的...

    LoadRunner压力测试实例

    - **模拟实际用户操作**: LoadRunner能够模拟真实用户的行为,包括点击、输入数据等操作,从而更准确地评估系统的性能表现。 - **实时性能监控**: 在测试过程中,LoadRunner能够实时监控系统的关键指标,如响应时间...

    loadrunner接口自动化测试

    2. **编写Vuser脚本**:使用LoadRunner的LR语言(Vuser Language)编写脚本,定义函数来读取数据文件中的参数,并构造接口调用。例如,可以使用Web_custom_request()函数来发送自定义HTTP请求。 3. **设置检查点**...

    LoadRunner用户手册过完整版.pdf

    - **Virtual User Generator (VUG)**:LoadRunner的核心组件之一,用于录制用户的交互过程,并将其转换为测试脚本。通过VUG,用户可以轻松地模拟出真实用户的业务操作。 - **参数化操作**:为了更准确地模拟实际...

    LoadRunner下WebService测试的若干问题

    总结,LoadRunner在WebService测试中提供了强大的功能,但同时也需要测试工程师具备深厚的Web服务知识和LoadRunner操作技能,以应对各种挑战。通过深入理解工具特性和常见问题,可以更有效地进行WebService性能测试...

    HP LoadRunner9.5

    - **录制器**:能够自动捕获用户的交互操作,并将其转换成 Vuser(虚拟用户)脚本。 - **回放功能**:支持在不同的服务器配置下运行脚本,模拟真实的用户行为。 2. **负载生成** - **负载生成器**:可以部署在多...

    LoadRunner 性能 测试

    掌握这些函数是提升LoadRunner脚本编写能力的关键。 5. **测试WebService接口** "LoadRunner测试WebService接口"将讲解如何利用LoadRunner的Web Services协议进行SOAP或RESTful接口的测试。这包括配置Vuser脚本、...

    LoadRunner小技巧集锦

    ### LoadRunner小技巧集锦 #### 一、解决录制脚本中出现中文乱码问题 在使用LoadRunner进行脚本录制时,如果发现脚本中包含的中文...以上技巧不仅有助于提高LoadRunner脚本的质量,也能有效提升测试效率和准确性。

Global site tag (gtag.js) - Google Analytics