`
5888ok
  • 浏览: 18853 次
  • 性别: Icon_minigender_1
  • 来自: 北京
最近访客 更多访客>>
社区版块
存档分类
最新评论

使用loadrunner读取XML文件中的数据

阅读更多
文件名test.xml,保存在D盘根目录下,内容为:
<employee>
    <id>123</id>
    <name>tom</name>
    <add>beijing</add>
    <age>20</age>
</employee>

loadrunner中的代码如下:

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;

char *readbuf;
char *file = "D:\\test.xml";

//读取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}"));
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}"));

0
1
分享到:
评论

相关推荐

    用loadrunner读取XML文件中的数据

    本文将深入解析如何利用LoadRunner读取XML文件中的数据,这是一个常见但重要的技术点,特别是在处理复杂的数据交互场景时。 ### 一、理解XML与LoadRunner XML(Extensible Markup Language)是一种用于标记数据的...

    loadrunner接口自动化测试

    在LoadRunner中,我们可以使用数据文件(如CSV或数据库)来提供接口测试的输入参数,然后在Vuser脚本中读取这些数据,执行相应的接口调用,并验证返回结果。 具体步骤如下: 1. **创建数据源**:首先,我们需要...

    FILE类型参数使用方式详解

    3. **数据循环**:在性能测试中,我们往往需要多次迭代数据,FILE参数应能支持循环读取文件中的行或使用某种随机机制选择数据。 4. **参数化语法**:介绍如何在脚本中插入FILE参数,比如使用占位符或者特殊变量表示...

    网上文件管理系统(Struts)(Java+EE项目案例).

    此功能涉及文件的读取、临时存储、文件大小检查、文件类型的限制等。Java的Servlet API可以用来处理文件上传。 3. **文件下载**:系统需要提供文件下载接口,允许用户按照文件ID或其他标识符获取文件。为了提高性能...

    TestProperty.rar

    例如,文本文件可以使用文本编辑器,配置文件可能需要特定的应用程序或编程环境来读取和修改,而数据库文件则可能需要数据库管理工具。 在进行测试时,理解并正确配置这些测试属性至关重要,因为它们直接影响到测试...

    jemeter自动化测试

    通常情况下,非登录测试会将登录接口置于初始化(init)阶段,通过此步骤获取`sessionid`、`userid`等关键值,以便后续测试中使用。 - **作用域问题**: - **Cookie的作用域**:在JMeter中,Cookie的作用域被限制在...

    开发的一个接口系统,用于压测时候进行学习试验使用

    MyBatis则是数据访问层的重要工具,它允许开发者在XML配置文件或注解中编写SQL语句,然后在Java代码中执行这些SQL,以实现CRUD(创建、读取、更新、删除)操作。通过MyBatis,可以轻松地管理SQL查询、存储过程,以及...

    (完整word版)第3套-软件测试整理修订试卷.doc

    8. **Oracle 数据库组件**:Oracle 数据库的物理组件包括数据文件、恢复日志文件和控制文件,而不包括表空间文件,表空间是逻辑概念。 9. **软件测试对象**:测试对象包括源代码、目标代码、相关文档以及数据。 10...

    (完整word版)第3套软件测试整理修订试卷.doc

    8. Oracle 数据库的物理组件包括数据文件、恢复日志文件和控制文件,不包括 D)表空间文件,表空间是逻辑概念。 9. 软件测试的对象涵盖 B)源程序、目标程序、数据及相关文档。 10. 测试评估方法常见的是 B)专家...

    apache+tomcat+mysql 的负载平衡和集群技术

    Tomcat 通过配置 server.xml 文件中的 `&lt;Engine&gt;` 和 `&lt;Cluster&gt;` 元素来实现集群功能。 - **session 共享:** - 使用 APR 或 JDBC 来实现 session 的持久化存储。 - 例如: ```xml channelSendOptions="3" ...

    (完整word版)第6套-软件测试整理修订试卷.doc

    在实际测试过程中,测试人员需要运用各种工具和方法,如LoadRunner中的MI Listener可以帮助定位问题并生成性能测试报告,Controller用于控制测试执行,而Analysis则用于分析测试结果。 【XML】 XML(可扩展标记语言...

    开发高性能的Web Service应用

    2. WSDL(Web Service Description Language):用于定义Web Service接口的XML格式文件,描述服务的地址、操作和消息格式。 3. SOAP(Simple Object Access Protocol):用于交换结构化和类型化信息的协议,基于XML...

    java高并发买秒杀完整代码

    4. **MyBatis**:MyBatis是一个持久层框架,它允许开发者将SQL语句直接写在XML配置文件或Java注解中,简化了数据库操作。在秒杀系统中,MyBatis可以用于执行商品库存的扣减等数据库操作。 5. **Bootstrap**:这是一...

    LR监控Linux系统资源方法

    首先,我们需要了解Linux系统中的关键资源指标,包括CPU利用率、内存使用情况、磁盘I/O和网络带宽等。这些指标是衡量系统健康状况的核心要素。 1. **CPU利用率**:CPU是系统处理任务的核心,过高或不合理的CPU利用...

    性能测试 面试题.pdf

    - **断言**:验证服务响应是否正确,通常使用JSON断言或XML断言。 #### 三、分布式压测 当并发用户数超过300时,建议采用分布式压测技术,通过多个JMeter服务器协同工作,提高测试的准确性和稳定性。 #### 四、...

    tomcat性能测试

    例如,可以在server.xml文件中配置context元素的reloadable属性为true,以便于开发阶段快速测试更改效果。 #### 四、总结 性能测试是一个系统性的工程,涉及到工具的选择、外部环境的优化以及Tomcat本身的配置等多...

    JAVA软件工程师学习步骤.doc

    - 输入/输出流技术:掌握File类、InputStream/OutputStream类及其子类如FileInputStream/FileOutputStream等操作文件读写的方法。 - 多线程编程:理解Thread类和Runnable接口实现多任务并发执行机制。 #### 二、...

    BD2-Postgres:使用POSTGRES银行进行性能测试的Database 2数据库的工作

    对于复杂的查询和分析,PostgreSQL还支持窗口函数、递归查询以及JSON和XML等非结构化数据的处理。 在“BD2-Postgres”项目中,性能测试可能包括了不同负载下的读写速度、并发处理能力、响应时间和资源消耗等方面。...

    软件测试 面试题大全

    - **循环**:在脚本中使用循环结构,逐个验证数据表中的每一组数据。 #### 13. QTP中的Action有什么作用?有几种? QTP中的Action主要用于封装一组相关的操作,以便在不同的测试场景中重复使用。Action主要有两种...

    php-example:我的在线课程的 php 示例

    4. **性能测试**:理解如何评估API的性能,包括并发请求处理能力、响应时间和资源消耗,可能使用工具如JMeter或LoadRunner。 以上就是"php-example"项目中的主要知识点,涵盖了PHP和MySQL的基础及应用,JavaScript...

Global site tag (gtag.js) - Google Analytics