Action()
{

    int nHttpRetCode;  

    lr_rendezvous("read");

lr_start_transaction("go    /*web_reg_find("Fail=NotFound",

        "Text=4001",
        LAST);*/

    //提取返回结果
    web_reg_save_param("status",
        "LB=\"status\":\"",
        "RB=\",",
        "Ord=1",
        "NotFound=ERROR",
        "Search=NoResource",
        LAST);

    // 默认最大长度为256,get请求需注意缓存问题,需要根据content-length进行修改
    web_set_max_html_param_len("262144");
    //自定义截取字符串,根据左右字符串获取数据,设置查找范围为消息体、左右查找边界为空则可以获取整个响应体的内容
    web_reg_save_param("ResponseBody", "LB=", "RB=", "Search=Body", LAST);
    // REQUEST为内置变量,保存请求的头信息,需在发送URL请求前注册使用,将请求头信息存入字符串RequestHeader中
    web_save_header(REQUEST, "RequestHeader");
    // 将RESPONSE保存响应的头信息在字符串ResponseHeader中
    web_save_header(RESPONSE, "ResponseHeader");

    //增加header
    web_add_header("Authorization","Basic MDMxMDAwMDM6YmViZTMwM2M1YmQ1MGFkYmY4OGFiMzFlMjVhMGQ0NTg=");
    //get请求
    web_url("test",
        "URL=http://wos-hrs.wondershare.cn/v1/evaluate/list?log_id=1&detail_id=1",
        "RecContentType=text/html",
        "Mode=HTML",
        LAST);

    //post请求
    /*web_custom_request("test",
                       "Method=POST",
                       "URL=http://wos-hrs.wondershare.cn/v1/log/comment",
                       "Body=log_id=1&detail_id=1&comment=1",
                       LAST );*/

    //字符转码
    lr_convert_string_encoding(lr_eval_string("{RequestHeader}"),LR_ENC_UTF8 ,LR_ENC_SYSTEM_LOCALE,"RequestHeaderUTF8");
    lr_convert_string_encoding(lr_eval_string("{ResponseHeader}"),LR_ENC_UTF8 ,LR_ENC_SYSTEM_LOCALE,"ResponseHeaderUTF8");
    lr_convert_string_encoding(lr_eval_string("{ResponseBody}"),LR_ENC_UTF8 ,LR_ENC_SYSTEM_LOCALE,"ResponseBodyUTF8");
    //输出信息 lr_eval_string()将参数值转换成字符串
    lr_output_message("# 请求头信息:\n %s", lr_eval_string("{RequestHeaderUTF8}"));
    lr_output_message("# 响应头信息:\n %s", lr_eval_string("{ResponseHeaderUTF8}"));
    lr_output_message("# 响应内容体:\n %s", lr_eval_string("{ResponseBodyUTF8}"));
    //获取服务器http响应码,HTTP_INFO_RETURN_CODE变量在请求后使用
    nHttpRetCode = web_get_int_property(HTTP_INFO_RETURN_CODE);
    if(nHttpRetCode == 200){
      lr_output_message("Success!");
    }else{
      lr_output_message("Failed! ");
    }

    //判断返回结果
    lr_output_message("# 提取返回结果如下:\n %s",lr_eval_string("{status}"));    if (strcmp(lr_eval_string("{status}"),"200")==0)        lr_end_transaction("go",LR_PASS);    else        lr_end_transaction("go",LR_FAIL);    lr_end_transaction("go", LR_AUTO);
return 0;
}

Loadrunner Web (HTTP/HTML) 接口测试的更多相关文章

  1. 老李分享:loadrunner用javavuser进行接口测试

    老李分享:loadrunner用javavuser进行接口测试 在这里分享一个poptest培训过程中案例,在日常工作中会遇到被测试系统通讯都是通过加密的数据包,加密算法是公司自己开发的,并且发送的数 ...

  2. web自动化测试中接口测试学习笔记

    一.web基础 web是实现:客户端浏览器端<—————>服务端  交互的应用: web通常包含两部分:web客户端.web服务端:web客户端技术包含html.javascript.aj ...

  3. 如何利用cURL和python对服务端和web端进行接口测试

    工具描述 cURL是利用URL语法在命令行方式下工作的文件传输工具,是开源爱好者编写维护的免费工具,支持包括Windows.Linux.Mac等数十个操作系统,最新版本为7.27.0,但是我推荐大家使 ...

  4. loadrunner用javavuser进行接口测试

    在日常工作中会遇到被测试系统通讯都是通过加密的数据包,加密算法是公司自己开发的,并且发送的数据包还要经过系统的压缩,以保证系统的性能.利用loadrunner就无法解决这里的加密的技术问题,利用jav ...

  5. LoadRunner web请求和响应中文乱码解决办法

    先来认识下lr_convert_string_encoding: int lr_convert_string_encoding( const char *sourceString, const cha ...

  6. 用LoadRunner实现接口测试

    接口测试的两种方法 其实无论用那种测试方法,接口测试的原理是通过测试程序模拟客户端向服务器发送请求报文,服务器接收请求报文后对相应的报文做出处理然后再把应答报文发送给客户端,客户端接收应答报文这一个过 ...

  7. Loadrunner 接口测试的两种方法

    其实无论用那种测试方法,接口测试的原理是通过测试程序模拟客户端向服务器发送请求报文,服务器接收请求报文后对相应的报文做出处理然后再把应答报文发送给客户端,客户端接收应答报文这一个过程. 方法一.用Lo ...

  8. Loadrunner之HTTP接口测试

    Loadrunner之HTTP接口测试 接口测试的原理是通过测试程序模拟客户端向服务器发送请求报文,服务器接收请求报文后对相应的报文做出处理然后再把应答报文发送给客户端,客户端接收应答报文这一个过程. ...

  9. LR进行接口测试

    其实无论用那种测试方法,接口测试的原理是通过测试程序模拟客户端向服务器发送请求报文,服务器接收请求报文后对相应的报文做出处理然后再把应答报文发送给客户端,客户端接收应答报文这一个过程. 方法一.用Lo ...

随机推荐

  1. MySql cmd下的学习笔记 —— 有关分组的操作(group by)

    (一) 把建立的goods表找到 (二) 当cat_id = 3时,计算所有商品的库存量之和 计算每个cat_id下的库存量(group by) 需要用到分组,把每个红框内的计算在一起 筛选出本店价比 ...

  2. oracle dblink的创建与使用

    一.什么是DBLINK dblink,顾名思义就是数据库的链接. 当我们要跨本地数据库访问另一个数据库中的表的数据时,在本地数据库中就必须要创建远程数据库的dblink,通过该dblink就可以达到访 ...

  3. C# 事务 四种事务隔离级别

    http://www.zsythink.net/archives/1233 不同隔离级别的问题   脏读(Dirty Read) 一个事务处理过程里读取了另一个未提交的事务中的数据 例子: 当一个事务 ...

  4. npm & webpack

    npm 全称 node package manager,是 js 的包管理工具,开发人员可以把写好的框架.库发布到 npm 上,使用者在使用时候就可很方便地通过 npm 来下载,只要在 npm官网 有 ...

  5. cartographer 安装

    Debian 8 Jessie 一顿操作梦如虎,最后不知道咋装上的. 参考:https://www.jianshu.com/p/9922a51ce38f https://blog.csdn.net/p ...

  6. xv6 + Qemu 在Ubuntu下编译运行教程【转】

    转自:https://blog.csdn.net/yinglang19941010/article/details/49310111 如果想要离线看教程,可以下载该 文档 一.使用工具说明 1.    ...

  7. Keepalived详解(一):Keepalived介绍【转】

    一.Keepalived介绍:         Keepalived是Linux下一个轻量级的高可用解决方案,它与HeartBeat.RoseHA实现的功能类似,都可以实现服务或者网络的高可用,但是又 ...

  8. python3+selenium框架设计04-封装测试基类

    在完成了日志类封装之后,那我们就要对测试基类进行实现,在其中对一些请求再次封装,在项目下新建一个framework文件夹,在文件夹下新建Base_Page.py文件,这是用来写测试基类的文件.在项目下 ...

  9. 8种Nosql数据库系统对比(转)

    导读:Kristóf Kovács 是一位软件架构师和咨询顾问,他最近发布了一片对比各种类型NoSQL数据库的文章. 虽然SQL数据库是非常有用的工具,但经历了15年的一支独秀之后垄断即将被打破.这只 ...

  10. mysql备份和bin-log日志

    总结]:mysql备份和bin-log日志 备份数据: mysqldump -uroot -p123456 test -l -F '/tmp/test.sql' -l:读锁(只能读取,不能更新) -F ...