日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

loadrunner简单使用——HTTP,WebService,Socket压力测试脚本编写

發布時間:2024/9/20 编程问答 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 loadrunner简单使用——HTTP,WebService,Socket压力测试脚本编写 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

先說明一下,本人是開發,對測試不是特別熟悉,但因工作的需要,也做過一些性能測試方面的東西。比較久之前很簡單的用過,最近又用到了,熟悉一下。現做一個總結。
使用loadrunner進行壓力測試主要分兩步,第一步是編寫腳本(比較重點),第二步執行測試(配置都是在界面上點點就行了,當然我只的是比較簡單的,能滿足日常需要的),第三步分析結果(這一步比較高深,但是對于我來說能看懂簡單的性能指標就OK了)。所以這里就說一下腳本的編寫,給未來再用到做參考。

1.HTTP的GET請求
這里以訪問百度為例,地址http://www.baidu.com/s?wd=mobile,表示在百度上搜索mobile。具體腳本如下(有注釋)

Lr script代碼 ?
  • Action()??
  • {??
  • ????int?status;??
  • ????lr_start_transaction("send");??
  • ??
  • ????web_reg_find("Search=Body",//這里說明在Body的范圍內查找??
  • ?????????????????"SaveCount=ret_Count",//這里表示把返回值的個數放在變量ret_Count里??
  • ?????????????????"Text=mobile",//這里表示查找的內容是“mobile”??
  • ?????????????????LAST);??
  • ??
  • ????status=web_url("Baidu_Search",???
  • ????????"URL=?http://www.baidu.com/s?wd=mobile",???
  • ????????"TargetFrame=Main",???
  • ????????"Resource=0",???
  • ????????"RecContentType=text/html",???
  • ????????"Mode=http",???
  • ????????LAST?);???
  • ??
  • ????lr_output_message("Request?Status:%d",status);??
  • ????lr_output_message("查找到的返回值個數:%d",atoi(lr_eval_string("{ret_Count}")));??
  • ??
  • ??
  • ????if?(atoi(lr_eval_string("{ret_Count}"))?>?0){//這里判斷檢查到的個數??
  • ?????????lr_output_message("Rec?successful.");??
  • ?????????lr_end_transaction("send",?LR_PASS);??
  • ?????}??
  • ?????else{???
  • ?????????lr_error_message("Rec?failed");??
  • ?????????lr_end_transaction("send",?LR_FAIL);??
  • ?????}???
  • ??
  • ????return?0;??
  • }??


  • 2.HTTP POST請求
    這個是在我們項目中用到的,發送POST請求,進行自然語言識別的,腳本如下:
    Lr script代碼 ?
  • Action()??
  • {??
  • ????int?status;??
  • ??
  • ????lr_start_transaction("send");??
  • ??
  • ????web_reg_find("Search=Body",//這里說明在Body的范圍內查找??
  • ?????????????????"SaveCount=ret_Count",//這里表示把返回值的個數放在變量ret_Count里??
  • ?????????????????"Text=t",//這里表示查找的內容是“t”??
  • ?????????????????LAST);??
  • ??
  • ????status=web_submit_data("trs",??
  • ????????????????"Action=http://192.168.77.185:9002/recognizeText",//地址??
  • ????????????????"Method=POST",//POST請求??
  • ????????????????"RecContentType=text/html",??
  • ????????????????"Mode=HTML",??
  • ????????????????ITEMDATA,??
  • ????????????????"Name=usercontent","Value=gprs",ENDITEM,//這一行表示傳入一個參數usercontent,值為gprs??
  • ????????????????"Name=Accept","Value=text/plain",ENDITEM,??
  • ????????????????LAST);??
  • ??
  • ?????lr_output_message("Request?Status:%d",status);??
  • ??
  • ?????if?(atoi(lr_eval_string("{ret_Count}"))?>?0){//這里判斷檢查到的個數??
  • ?????????lr_output_message("Rec?successful.");??
  • ?????????lr_end_transaction("send",?LR_PASS);??
  • ?????}??
  • ?????else{???
  • ?????????lr_error_message("Rec?failed");??
  • ?????????lr_end_transaction("send",?LR_FAIL);??
  • ?????}???
  • ??
  • ?????return?0;??
  • }??


  • 3.WebService請求
    webservice請求的腳本建議通過可視化的方式添加
    1)引入webservice,注意wsdl后綴

    2)給入參填值

    3)給返回值指定存儲到的變量中

    4)結果檢查
    這個與其它模式一樣,不多說了
    我這里添加的是網上公用的天氣預報webservice,地址是:http://www.webxml.com.cn/WebServices/WeatherWebService.asmx
    詳細腳本如下:
    Lr script代碼 ?
  • Action()??
  • {??
  • ????int?status;??
  • ??
  • ????lr_start_transaction("send");??
  • ??
  • ????status=web_service_call(?"StepName=getSupportCity_102",??
  • ????????"SOAPMethod=WeatherWebService|WeatherWebServiceSoap|getSupportCity",//這里是我已經引用了webservice的名稱及調用方法??
  • ????????"ResponseParam=response",??
  • ????????"Service=WeatherWebService",??
  • ????????"ExpectedResponse=SoapResult",??
  • ????????"Snapshot=t1353067092.inf",??
  • ????????BEGIN_ARGUMENTS,??
  • ??????????????????????"byProvinceName=安徽",//這里是入參,參數名稱:byProvinceName,值:安徽。入參和返回值的名稱都可以再引用里看見??
  • ????????END_ARGUMENTS,??
  • ????????BEGIN_RESULT,??
  • ??????????????????????"getSupportCityResult=result",//這里是返回值,名稱:getSupportCityResult,把它放到變量result中??
  • ????????END_RESULT,??
  • ????????LAST);??
  • ??
  • ????lr_output_message("Request?Status:%d",status);??
  • ????lr_output_message("Result:%s",lr_eval_string("{result}"));//這里把返回值輸出,調試webservice的時候用??
  • ??
  • ??
  • ????if(strstr(lr_eval_string("{result}"),"合肥")>0){//這里是判斷返回值中是否包含“合肥”??
  • ????????lr_end_transaction("send",LR_PASS);??
  • ????}else{??
  • ????????lr_end_transaction("send",LR_AUTO);??
  • ????}??
  • ??
  • ????return?0;??
  • }??


  • 4.Socket請求
    我這里指的是簡單的Socket請求,端連接,發送接收的都是一個字符串。比較復雜的Socket請求,自己錄制腳本。如果不知道,自己去查。
    詳細腳本如下,另外還包含一個data.ws文件,用來聲明發送和接收的字節數組及其長度的,并指定要發送的內容(發送的內容一樣可以參數化的)
    Lr script代碼 ?
  • #include?"lrs.h"??
  • Action()??
  • {??
  • ????char?*recvbuf;??
  • ????int?recvlen=0;??
  • ????int?rc;??
  • ??
  • ????lrs_startup(257);??
  • ??
  • ????lr_start_transaction("Trans_1");??
  • ????lr_start_transaction("Conn_1");??
  • ??
  • ????rc=lrs_create_socket("socket0",?"TCP",?"RemoteHost=192.168.1.101:8888",??LrsLastArg);//創建Socket連接??
  • ??
  • ????if?(rc?!=?0?)?{?????
  • ????????lr_end_transaction("Conn_1",?LR_FAIL);?????
  • ????????lr_end_transaction?("Trans_1",?LR_FAIL);?????
  • ????????return?0;????
  • ????}??
  • ????lr_end_transaction("Conn_1",?LR_PASS);??//判斷socket是否鏈接成功的事務,0表示創建成功??
  • ??
  • ????lrs_send("socket0",?"buf0",?LrsLastArg);?//發送buf0,buf0為在data.ws中定義的發送變量??
  • ??
  • ????lrs_receive("socket0",?"buf1",?LrsLastArg);?//接收消息,存放在buf1中,buf1是在data.ws中定義的接收數組,注意數組長度一定要大于等于實際接收長度??
  • ??
  • ????lrs_get_last_received_buffer("socket0",&recvbuf,&recvlen);//把Socket最后接收的字節數組,長度放在recvlen中,內容放在recvbuf中??
  • ??
  • ????lr_output_message("Received:%s",lr_eval_string(recvbuf));??
  • ??
  • ????if(recvlen>3)??
  • ????????lr_end_transaction("Trans_1",?LR_PASS);??
  • ????else??
  • ????????lr_end_transaction?("Trans_1",?LR_FAIL);??
  • ??
  • ??
  • ????lrs_disable_socket("socket0",?DISABLE_SEND_RECV);??
  • ??
  • ????lrs_close_socket("socket0");??
  • ????return?0;??
  • }??

  • Lr script代碼 ?
  • //data.ws??
  • ;WSRData?2?1??
  • ??
  • send??buf0?32??
  • ????"hehehehe"??
  • ??
  • recv??buf1?50??
  • ??????
  • ??
  • ??
  • -1??


  • 結束的話:
    這里介紹的測試腳本,我覺得開發測試人員都需要會,因為開發弄出來的東西,自己要了解個大概的性能吧。如果測試的專業人員,這些都要熟知,再如果想要了解的更多,請轉到51testing上去。

    來源:http://ajita.iteye.com/blog/1728243/

    總結

    以上是生活随笔為你收集整理的loadrunner简单使用——HTTP,WebService,Socket压力测试脚本编写的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

    主站蜘蛛池模板: 痴汉电车在线播放 | 一二三在线视频 | 国产自产一区二区 | 亚洲视频在线网 | 久久人人爽人人爽人人片av免费 | 久久精品国产亚洲a | 成人高清免费 | 一区二区三区观看 | 日本免费一区二区三区视频 | 在线青草 | 国产二级片 | 国产一区二区内射 | 日本综合色| 国产精品视频一区二区在线观看 | 天天看黄色 | 亚洲 欧美 变态 另类 综合 | 黄色国产一区二区 | 青青草视频在线免费观看 | 影音先锋制服 | 国产一区二区久久久 | 亚洲资源av | 国产情侣一区二区 | 淫品色影院 | 青青久在线视频 | 日韩国产欧美一区 | 校园春色亚洲激情 | 亚洲制服无码 | 污污网站在线观看视频 | 人妻无码一区二区三区免费 | 意大利少妇愉情理伦片 | 亚洲a色| 夜夜夜夜夜操 | 999国产精品| 久久久久久激情 | 亚洲av色香蕉一区二区三区 | 亚洲日本在线播放 | www.日本com| 黄色片18 | 在线cao| 久久久久国产一区二区三区 | 午夜综合 | 免费看a| 久久一二区 | 精品成人久久久 | 久草福利在线 | 青青艹在线观看 | 亚洲国产精品久久久久久久 | 99在线视频免费观看 | 91国偷自产一区二区三区女王 | 精品网站| 欧美成人自拍视频 | 老司机深夜视频 | 日韩精品在线观看网站 | www.黄色网址 | 亚洲精品午夜国产va久久成人 | 无遮挡在线观看 | 含羞草一区二区三区 | 天天色天天射综合网 | 激烈的性高湖波多野结衣 | 毛片a片免费看 | av网址在线免费观看 | 国产一级特黄aaa大片 | 国产日韩在线视频 | 91丨porny在线 | 欧美又粗又长 | 国产 欧美 精品 | 中文字幕av影院 | 97福利网| 久久性感美女视频 | 日本特级黄色大片 | 麻豆视频网站 | 国产妇女馒头高清泬20p多 | 日韩在线观看视频一区二区三区 | 麻豆一区二区在线观看 | 伊是香蕉大人久久 | 农村妇女毛片精品久久久 | 欧美日韩成人在线播放 | 欧美浓毛大泬视频 | 久草视频在线资源 | 好吊妞这里有精品 | 少妇色视频| 久久精品人妻av一区二区三区 | 黄色片www | 国产精品久久久久久久专区 | 久久91亚洲精品中文字幕奶水 | 中文一区在线观看 | 国产乱码一区二区三区在线观看 | 狂野少女电影在线观看国语版免费 | 男人的天堂网av | av合集 | 欧洲高潮三级做爰 | 亚洲免费看黄 | 熟女俱乐部五十路六十路av | 香蕉毛片 | 黄色中文 | 欧美亚洲专区 | 中国黄色一级片 | 最近中文字幕在线视频 | 男人天堂网址 |