潇潇暮雨 发表于 2011-11-28 11:08:00

LoadRunner 如何进行接口的压力测试(http协议)

LoadRunner 如何进行接口的压力测试(http协议)
会的同仁可以加我QQ952173657
感激!

ella2008cm 发表于 2011-11-28 15:56:23

可以考虑用jmeter?

潇潇暮雨 发表于 2011-11-28 17:55:35

回复 2# ella2008cm


    不会使用那工具。哎。。。。太白开水了!

lenjuan 发表于 2011-11-29 16:31:28

我也遇到同样的问题 我用lr测试的 但返回值太多 不知道怎么判断 求达人解决

msnshow 发表于 2011-11-29 19:45:07

回复 1# 潇潇暮雨


    楼主讲的接口是指什么样的接口

msnshow 发表于 2011-11-29 19:45:18

回复 4# lenjuan


    返回的值太多,是指?

潇潇暮雨 发表于 2011-11-29 20:58:14

回复潇潇暮雨


    楼主讲的接口是指什么样的接口
msnshow 发表于 2011-11-29 19:45 http://bbs.51testing.com/images/common/back.gif


    就是http协议的那种接口,get,post

msnshow 发表于 2011-11-29 22:18:37

回复 7# 潇潇暮雨

这个直接使用http/html协议录制就OK了吧

潇潇暮雨 发表于 2011-11-30 09:12:56

回复 8# msnshow


    我开始也是这样做的。可是我把URL在浏览器上运行 报错。不知道是不是我的测试方式错了,还是接口问题。

msnshow 发表于 2011-12-1 00:13:09

如果你的URL是post的,直接用浏览器访问没有post需要的参数,肯定会报错的

潇潇暮雨 发表于 2011-12-1 09:19:39

回复 10# msnshow


   我后来传了参数。可是用LR怎么进行自动化的传参呢?

msnshow 发表于 2011-12-1 13:28:31

自动化传参是指啥,不就参数化就行了么

bob123654 发表于 2011-12-1 13:42:20

回复 1# 潇潇暮雨

下面给楼主2个例子,参考以下,然后主要压测的时候需要开发提供相关接口文档,或者自己录制。
左侧的Name都是开发提供的接口参数名称,Value是相应的参数值。Action为开发给的测试地址。
PS:注意在测试的时候设置Controller的Run time setingPacing的值为With a fixed delay of X seconds。还要注意在压测的时候观察服务器的CPU利用率已经内存使用情况。

      web_submit_data("insert",
                "Action= http://116.211.23.121/app/Jigsaw/GetResult.ashx",
                "Method=GET",
                "Referer= http://116.211.23.121/home.aspx",
                                 "Mode=HTML",
                ITEMDATA,
                "Name=uid","Value={myUid}",ENDITEM,
                "Name=id","Value=4",ENDITEM,
                "Name=time","Value=00:00:{ss}",ENDITEM,
                "Name=piecewn","Value={myPiecewn}",ENDITEM,
                "Name=piecehn","Value={myPiecehn}",ENDITEM,
                LAST);


char str;
strcpy(str,"SNSID=7999&UserID=1&CommentsTypeID=1&CommentsID=1&AuthorID=1&CommentsContent=1");
web_custom_request("Publish",
   "Url= http://10.240.248.103:7006/Comment/{IID}",
   "Method=POST",
   "Referer= http://10.240.248.103:7006/Comment/{IID}",
   "Mode=HTTP",
   str,
    LAST);
这也是一种写法,可以跟web_submit_data互换。这种写法更利于拼接参数。

bob123654 发表于 2011-12-1 13:47:16

回复 1# 潇潇暮雨

忘记说了,这个只是一个简单的LR API函数,还需要对脚本使用web_reg_find()做一个最终的结果检查:
PS:下面的例子是我以前写的一个脚本的例子,对最终的返回结果要最好有一个结果检查,这样子比较合理些。
Action()
{
        web_reg_find("Search=Body", //定义查找范围
    "SaveCount=result", //定义查找计数变量名称
    "Text=领取成功", //定义查找内容
   LAST);

//发送请求
        web_submit_data("GetActivativeCode",
                "Action= http://192.168.101.181:8931/project/libao/bf.asp",
                "Method=POST",
                "Referer= http://192.168.101.181:8931/project/libao/bf.asp",
      "Mode=HTML",
               ITEMDATA,
      "Name=Jcode","Value=4",ENDITEM,
      "Name=Account","Value=zhzh1986",ENDITEM,
                  LAST);

        if (atoi(lr_eval_string("{result}")) > 0) //判断如果Welcome字符串出现次数大于0
      lr_output_message("Log on successful."); //在日志中输出Log on successful
    else
                //如果出现次数小于等于
       lr_error_message("Log on failed"); //在日志中输出Log on failed

        return 0;
}

下面给楼主2个例子,参考以下,然后主要压测的时候需要开发提供相关接口文档,或者自己录制。
左侧的Name都是开发提供的接口参数名称,Value是相应的参数值。Action为开发给的测试地址。
PS:注意在测试的时候设置Controller的Run time setingPacing的值为With a fixed delay of X seconds。还要注意在压测的时候观察服务器的CPU利用率已经内存使用情况。

      web_submit_data("insert",
                "Action= http://116.211.23.121/app/Jigsaw/GetResult.ashx",
                "Method=GET",
                "Referer= http://116.211.23.121/home.aspx",
                                 "Mode=HTML",
                ITEMDATA,
                "Name=uid","Value={myUid}",ENDITEM,
                "Name=id","Value=4",ENDITEM,
                "Name=time","Value=00:00:{ss}",ENDITEM,
                "Name=piecewn","Value={myPiecewn}",ENDITEM,
                "Name=piecehn","Value={myPiecehn}",ENDITEM,
                LAST);


char str;
strcpy(str,"SNSID=7999&UserID=1&CommentsTypeID=1&CommentsID=1&AuthorID=1&CommentsContent=1");
web_custom_request("Publish",
   "Url= http://10.240.248.103:7006/Comment/{IID}",
   "Method=POST",
   "Referer= http://10.240.248.103:7006/Comment/{IID}",
   "Mode=HTTP",
   str,
    LAST);
这也是一种写法,可以跟web_submit_data互换。这种写法更利于拼接参数。

newhackerman 发表于 2011-12-6 14:50:48

可以借助工具(SOAPUI/XPY xml )再用LR录制脚本,选择多协议中的web services或web(http/html)协议进行录制后,适当修改脚本.即可.

潇潇暮雨 发表于 2011-12-6 17:53:40

可以借助工具(SOAPUI/XPY xml )再用LR录制脚本,选择多协议中的web services或web(http/html)协议进行录制后 ...
newhackerman 发表于 2011-12-6 14:50 http://bbs.51testing.com/images/common/back.gif


    我不会那个。。

m2502927 发表于 2011-12-8 09:40:48

回复 1# 潇潇暮雨


    是webservice的吗?

潇潇暮雨 发表于 2011-12-8 17:26:21

回复潇潇暮雨


    是webservice的吗?
m2502927 发表于 2011-12-8 09:40 http://bbs.51testing.com/images/common/back.gif


    恩咯

xudongming 发表于 2011-12-9 14:48:13

我用web_custom_request函数 ,协议是HTTP方式可以有post get 等

jj_ljw 发表于 2012-6-5 15:05:28

回复潇潇暮雨

下面给楼主2个例子,参考以下,然后主要压测的时候需要开发提供相关接口文档,或者自己 ...

PS:注意在测试的时候设置Controller的Run time setingPacing的值为With a fixed delay of X seconds。
bob123654 发表于 2011-12-1 13:42 http://bbs.51testing.com/images/common/back.gif

Pacing可以用think time代替吗,不加的话对服务器的压力更大吧
页: [1]
查看完整版本: LoadRunner 如何进行接口的压力测试(http协议)