loadrunner測試介面,將結果寫入日誌檔案
Action()中使用web_custom_request()方法傳送請求
或者F1檢視web_custom_request的使用技巧
Action()
{
web_custom_request( "court_user", //這個是給請求起個名稱,在樹形圖中顯示,不影響結果
"URL= http://192.168.7.55:8080/court_user", //介面的url
"Method=POST",
"RecContentType=application/json", //這裡指定介面傳參型別為json格式
"EncType=application/json",
"Mode=HTTP", //是http請求
"Body={\"username\":\" [email protected]\",\"password\":\"000000\"}", //介面入參,引數中的 " 要轉義
LAST);
return 0;
}
列印響應文字,以及處理響應文字中文亂碼
執行成功後,發現沒有顯示出返回值,可以採取的措施有兩種:
修改runtime settings:’Vuser’–>’Run-Time Settings’–>’Log’–>’Extended log’–>’Data returned by server’,修改完成後,所有返回的資訊都會顯示在Replay Log中。
在web_custom_request()方法前用web_reg_save_param()匹配獲取響應文字,在web_custom_request()之後用lr_message()或lr_output_message()方法打印出來。
我先用了第一種方法,結果列印的結果中文顯示亂碼,在網上搜到log亂碼一般有兩種解決方法:
第一種是修改Recording Options,而我們這裡是直接傳參測試介面,沒有錄製的過程,此方法無效;
第二種方法是獲取響應文字,轉換編碼格式,然後打印出來,還是回到了上面的第二種獲取響應的措施;
所以我採用第二種方法,在web_custom_request()之前用關聯函式web_reg_save_param()獲取響應文字,關聯函式是一個註冊型函式,需要告訴VuGen下一個請求返回是需要被處理的,因此該函式必須寫在請求之前,否則就會出現無法獲得關聯結果的錯誤,程式碼如下:
web_reg_save_param( "response", //變數名稱 "LB=", //匹配格式開頭,注意其中要有 " 也必須進行轉義 "RB=", //匹配格式結尾,此函式會在響應中匹配LB與RB之間的內容並賦給變數,我這裡將響應文字全部輸出了 "NotFound=warning", //如果沒有發現,則報警告,預設報error LAST);
在web_custom_request()之後,將response轉換格式並輸出,程式碼如下:
lr_convert_string_encoding(lr_eval_string("{response}"),"utf-8","gb2312","str");
lr_output_message(lr_eval_string("{str}"));
然後再次執行,就可以輸出響應內容,也沒有亂碼
將結果寫入日誌檔案
1.指令碼實現
首先根據網上找到的內容跟著進行指令碼實現,程式碼如下:
//定義要寫入的日誌,開啟檔案
char *filename = "d:\\lr_script\\test001.log";
long file_stream;
if((file_stream == fopen(filename,"a+")) == NULL)
{
lr_error_message("Can't open %s", filename);
return -1;
}
//中間省略介面請求部分程式碼,見上文
lr_save_datetime("%y-%m-%d %H:%M:%S",DATE_NOW + TIME_NOW,"times");
//下面這句輸出當前引數與當前時間
fprintf(file_stream, "username = %s, password = %s , time = %s\n",lr_eval_string("{username}"),lr_eval_string("{password}"),lr_eval_string("{times}"));
//寫入獲取到的響應資料,str在上文中有定義
fprintf(file_stream,"%s\n\n\n",lr_eval_string("{str}"));
fclose(file_stream); //關閉檔案
2.深入理解
寫日誌實質上就是把一些需要分析的資訊寫入到檔案中,所以便是需要操作檔案的方法,我們可以用下面四個函式進行檔案操作:
fopen() – 開啟檔案 – fopen(FILE * stream ,const char *format,….):返回一個FILE資料型別的指標。
fscanf() – 讀檔案 – fscanf(FILE * stream ,const char *format,….):自引數stream的檔案流中讀取字串,再根據引數format字串來轉換並格式化資料。
fprintf() – 寫檔案 – fprintf(FILE stream,const char format,va_list ap):根據引數format字串來轉換並格式化資料,然後將結果輸出到引數stream指定的檔案中,直到出現字串結束(’\0’)為止。
fclose() – 關閉檔案 – fclose(FILE * stream)
發現這幾個方法與其他語言中的檔案操作幾乎大同小異,非常簡單。上面的程式碼中用到了其中的三個函式,下面舉個例子:
int MyFile;
char *ch[10];
MyFile = fopen("D:\\lr_log\\01.txt","r");
fscanf(MyFile,"%s", ch);
這是讀取字串,讀取數值型資料如下:
int MyFile;
int number;
MyFile = fopen("D:\\lr_log\\01.txt","r");
fscanf(MyFile,"%d", &number);
3.輸出當前vuser資訊
我們在controller中執行的時候會增加新增多個vuser,我們需要在輸出的時候新增上vuser的資訊,這樣才能在日誌中知道請求和響應是哪個vuser的。增加程式碼如下:
int id,scid; //定義儲存vuser資訊的2個整形變數
char *group; //定義儲存groupname
lr_whoami (&id,&group,&scid); //獲取變數
//中間省略檔案開啟,介面處理程式碼,見上文
lr_save_datetime("%y-%m-%d %H:%M:%S",DATE_NOW + TIME_NOW,"times"); //獲取當前日期時間
//下面這句輸出vuser資訊,在fclose()方法之前
fprintf(file_stream,"vuser使用者的資訊:time=%s,id=%d,group=%s,scid=%d,uname=%s\n",lr_eval_string("{times}"),id,group,scid,lr_eval_string("{uname}"));
參考資源
相關推薦
loadrunner測試介面,將結果寫入日誌檔案
Action()中使用web_custom_request()方法傳送請求或者F1檢視web_custom_request的使用技巧Action() { web_custom_request( "court_user", //這個是給請求起個名稱,在樹形圖中顯示,不影
loadrunner之 學習六:將結果寫入日誌檔案
學習六:將結果寫入日誌檔案 1.指令碼實現 首先根據網上找到的內容跟著進行指令碼實現,程式碼如下: //定義要寫入的日誌,開啟檔案 char *filename = "d:\\lr_script\\test001.log"; long file_st
從一個檔案讀取內容計算出結果,將結果寫入到另一個檔案中
/* * 專案根路徑下有個questions.txt檔案內容如下: 5+5 [ 5, 5] 150-25 155*155 2555/5 要求:讀取內容計算出結果,將結果寫入到results
Spark中ip對映資料應用庫,二分查詢省份,將結果寫入mysql
def main(args: Array[String]): Unit = { val conf = new SparkConf() .setMaster("local") .setAppName(IpLocation3.getClass.getName) val sc =
Python解析csv檔案並將結果寫入bat檔案
第二次感覺有很大進步,對列表使用慢慢熟悉,繼續加油。 #!/usr/bin/python # -*- coding: UTF-8 -*- import os import csv import codecs
linux重定向,將輸出寫入txt檔案
轉載地址:http://www.cnblogs.com/chengmo/archive/2010/10/20/1855805.html 在瞭解重定向之前,我們先來看看linux 的檔案描述符。 linux檔案描述符:可以理解為linux跟蹤開啟檔案,而分配
Linux之C語言中如何丟擲異常或將異常寫入日誌檔案中
Linux中用C語言寫系統日誌__________________________________________________________________________________________________Author:冀博Time :2011/11/24
IO流讀取資料檔案,將資料寫入資料庫,並記錄資料匯入日誌
流程分析: 資料型別: ROUTE_ID,LXBM,ROAD_NAME,SRC_LON,SRC_LAT,DEST_LON,DEST_LAT 10000,G50,滬渝高速,115.8605349,30.08934467,115.5437817,30.08898601 10001,G
app應用啟動測試,並將資料寫入csv檔案
import os import subprocess import codecs import time import re from decimal import * import csv class Start_APP(object): all_info=[] def get
python檔案讀寫(從file1中讀出資料並計算,然後將結果寫入到file2中)
要求新建兩個檔案,file1、file2,要求開啟file1檔案,分別對每一行數字進行求和,並將每一行的結果寫在file2中。 file1: 20 30 40 20 52 63 52 52 85 52 8 456 522 25 36 85 96 74 程式原始碼: 定義一個求和函式
備註:tensorflow模型訓練時同時進行測試,將結果視覺化。
1、首先建立兩個placeholder,用來存放測試資料集,和標籤。 x = tf.placeholder(tf.float32, shape = [BATCH_SIZE,256,256,3]) y_ = tf.placeholder(tf.int16,shape = [
Spark Streaming之使用Spark Streaming完成詞頻統計,並將結果寫入到MySQL資料庫中
package com.yys.spark.project import java.sql.DriverManager import org.apache.spark.SparkConf import org.apache.spark.streaming.{Seconds,
Flume實戰三,將A伺服器日誌實時採集到B伺服器中
架構圖: 技術選型: exec source + memory channel + avro sink avro source + memory channel + logger sink 1)server A 資料收集端 在cd $FLUME_HOME/conf vim exec
[UE4]更通用的介面,將UserWidget作為圖示新增到小地圖
將圖示改成UserWidget新增到小地圖,UserWidget支援動畫特效,更豐富小地圖的功能。 一、在小地圖圖示結構體中,將Flag資料型別改成UserWidget,刪除ImageWidget(型別是Image,因為不需要了) 二、注意:動態新增UserWi
pvuv的程式碼開發及提交spark程式jar包執行讀取資料來源並將結果寫入MySQL中
目錄 PvUvToMysql類 ConnectionUtils類 jdbc.properties檔案 在IDEA中打jar包的兩種方式 IDEA打jar包 IDEA中maven方式打jar包 提交spark程式ja
PostMan測試介面,傳送Get,Post請求
我現在的專案開發是前後臺分離的,所以在寫介面的時候,是需要自己測試一下的,測試工具就是PostMan,第一次接觸,也是百度,檢視部落格。所以自己乾脆寫個全一點的,也讓其他人有個參考,寫的不對多多指正哈; 下面Postman工具介紹一點,簡單的大家
在xshell中執行hive sql 並將結果寫入另一個txt文字中
在xshell 中進入資料夾:vi test.sql然後將要執行的sql輸入,注意開頭不能有空格寫完後按Esc鍵,輸入:x儲存並退出輸入下面程式碼:/usr/bin/beeline -u "jdbc:hive2://dsrv1.heracles.sohuno.com:1000
將圖片寫入二進位制檔案,再從二進位制檔案還原圖片(c++)
1 #include "string" 2 #include "iostream" 3 #include "fstream" 4 using namespace std; 5 #define MAX 20480 6 void main() 7 { 8 string sPicPat
利用HttpClient傳送post請求京東介面並將結果用POI匯出為 Excel表格
package com.zhongsou.demo; import java.io.File; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.Fil
jmeter測試介面,跟jenkins整合實現自動推送郵件報告
jmeter我之前沒用過,後來學習測試api,發現很方便,因而做一個記錄。 在mac上安裝jmeter,首先需要在官網下載安裝外掛,然後配置環境,為了實現跟jenkins整合,也下載了ant。環境搭建好以後,應該是這樣的狀態。 export ANDROID_HOME=/U