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. 【转载】使用python库--Graphviz为论文画出漂亮的示意图

    原文: Drawing Graphs using Dot and Graphviz 1 License Copyright (C) 2013, 2014, 2015, 2016, 2017, 2018 ...

  2. 手写代码 - java.lang.String/StringBuilder 相关

    语言:Java 9-截取某个区间的string /** * Returns a string that is a substring of this string. The * substring b ...

  3. Samples topic

    Rendering: http://www.cnblogs.com/miloyip/archive/2010/03/29/1698953.html http://www.scratchapixel.c ...

  4. MySQL:Your password has expired. To log in you must change it using a client that supports expired passwords

    MySQL:V5.6.37 安装后发现没远程权限,为了方便,就直接把hostname@root修改为%@root,密码修改为和localhost@root一样 然后尴尬的事情发生了,本地登陆正常,远程 ...

  5. Go语言中的struct tag

    有时在Go的结构体定义时会看到这样的形式: type User struct { UserId int `json:"user_id" bson:"b_user_id&q ...

  6. Nginx和apache服务器中php运行方式

    PHP5的CGI方式的一大优势是内置了FastCGI的支持,只需指明绑定的地址和端口参数便可以以FastCGI的方式运行,如下: php-cgi -b 127.0.0.1:9000 配置Nginx的P ...

  7. MYSQL添加远程用户或允许远程访问

    1.用root用户登陆 格式:grant 权限 on 数据库教程名.表名 to 用户@登录主机 identified by "用户密码";             @ 后面是访问M ...

  8. NOI2019 SX 模拟赛 no.5

    Mas 的童年 题目描述:不知道传送门有没有用? 反正就是对于每个前缀序列求一个断点,使得断点左右两个区间的 分别的异或和 的和最大 分析 jzoj 原题? 但是我 TM 代码没存账号也过期了啊! 然 ...

  9. $Django 中间件 csrf

     中间件  -中间件是什么?请求和响应之间的一道屏障  -中间件作用:控制请求和响应  -django中内置几个中间件   process_request(self,request)   proces ...

  10. zabbix批量监控urls的状态码

    .添加url监控脚本 [root@node1 usr]# vim /usr/local/zabbix_agents_3.2.0/scripts/web_site_code_status.sh #!/b ...