1. 程式人生 > >loadrunner之 學習六:將結果寫入日誌檔案

loadrunner之 學習六:將結果寫入日誌檔案

學習六:將結果寫入日誌檔案

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 學習結果寫入日誌檔案

學習六:將結果寫入日誌檔案 1.指令碼實現 首先根據網上找到的內容跟著進行指令碼實現,程式碼如下: //定義要寫入的日誌,開啟檔案 char *filename = "d:\\lr_script\\test001.log"; long file_st

loadrunner 學習分析結果,給出報告

學習九:分析結果,給出報告 1.Analysis初接觸 Analysis可以通過Launcher開啟,也可以通過controller開啟。包含下列主要視窗: 會話瀏覽器:顯示已經開啟可供檢視的報告和圖。可開啟新報告或圖,也可刪除不想檢視的報告和圖。

loadrunner測試介面,結果寫入日誌檔案

Action()中使用web_custom_request()方法傳送請求或者F1檢視web_custom_request的使用技巧Action() { web_custom_request( "court_user", //這個是給請求起個名稱,在樹形圖中顯示,不影

loadrunner 學習loadrunner函式

學習二:loadrunner函式 一、基礎函式 在VU左邊導航欄中,有三個LR框架函式,分別是vuser_init(),Action(),vuser_end()。這三個函式存在與任何Vuser型別的指令碼中。 vuser_init():虛擬使

Python解析csv檔案結果寫入bat檔案

            第二次感覺有很大進步,對列表使用慢慢熟悉,繼續加油。 #!/usr/bin/python # -*- coding: UTF-8 -*- import os import csv import codecs

LinuxC語言中如何丟擲異常或異常寫入日誌檔案

Linux中用C語言寫系統日誌__________________________________________________________________________________________________Author:冀博Time :2011/11/24

Matlab學習筆記——xlswrite資料寫入xls檔案

xlswrite將資料寫入xls檔案 一、功能簡介 將資料寫入微軟電子表格文件中。 二、使用方法 (filename, M) 將矩陣M的資料寫入名為filename的Excel檔案中。 xlswrite(filename, M, sheet)

統計學習1.對數線性模型邏輯回歸

最優化 clas distrib 技術分享 mat 計算 隨機 res 類模型 全文引用自《統計學習方法》(李航) 本節介紹的對數線性模型,主要包括邏輯斯諦回歸(logistic regression)模型以及最大熵模型(maximum entropy model)。邏

java執行緒學習()JDK併發包重入鎖-ReentrantLock

本章將學習重入鎖的以下方法: lock(): 獲得鎖,如果鎖已被佔用,則等待; lockInterruptbly(): 獲得鎖,但優先響應中斷; tryLock(): 嘗試獲得鎖,如果成功,返回true,反之返回false,該方法不會等待,執行則立即返回,可用tryL

Echarts學習dataZoom

dataZoom=[                                      //區域縮放    {        id: 'dataZoomX',        show:true,                              //是否顯示 元件。如果設定為 false,不會

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,

【Java並發編程】深入Java內存模型——happen-before規則及其對DCL的分析(含代碼)

無需 bit 對象引用 說了 final 緩存 機器 通過 round 轉載請註明出處:http://blog.csdn.net/ns_code/article/details/17348313 happen—before規則介紹 Java語言中有一個“先行發生

u-boot學習()自己寫bootloader

include trie depth params tee tboot config initrd passing 依照前面分析的u-boot的啟動流程,自己寫一個簡單的Bootloader。這是參考韋東山老師的視頻寫的。 1、初始化硬件:關看門狗、設置時鐘、設置SDR

數據結構和算法排序希爾排序

style 發展 思想 希爾 發現 冒泡 縮小 pre mage   經過前面五篇排序方法的介紹,我們了解到了遞歸思想以及分而治之的歸並和快速排序,當然也涉及到了比較簡單易懂的數據值傳遞冒泡,選擇,以及插入排序。可以說每一種排序方式都各有千秋,都適合在不同的環境下進行使用,

Redis探索路()Redis的常用命令

測試 info mov per redis 相關 選擇 客戶 del 一:鍵值相關命令 1.keys Pattern模糊查詢 keys my* 2.exists某個key是否存在 exists key1 3.del 刪除一個key del key1 4.ex

SDUT 3403 數據結構實驗排序希爾排序

include 輸入 header 有序 sample 正整數 結果 少量數據 算法 數據結構實驗之排序六:希爾排序 Time Limit: 1000 ms Memory Limit: 65536 KiB Problem Description 我們已經學習

skyfans每天一個Liunx命令系列id

截止到上一章,我們終於學完了PERFORMANCE MONITORING AND STATISTICS(效能監測與統計)的命令。 那今天我們來學習什麼類的命令呢,那就是USER INFORMATION AND MANAGEMENT(使用者資訊和管理),今天學習的是什麼命令呢,那就是id(顯示

Android JNI 學習()JNI 介面整理 — Object Operations Api

一、AllocObject jobjectAllocObject(JNIEnv *env, jclass clazz); 分配新 Java 物件而不呼叫該物件的任何建構函式。返回該物件的引用。 clazz 引數務必不要引用陣列類。 引數: env:JNI 介面指標。 clazz:Java

node學習路徑操作

首先需要匯入path模組: const path = require('path'); path.basename(path[,.ext]): // 獲取路徑的最後一部分 console.log(path.basename('/foo/bar/baz/asdf/quux.html'));

SpringCloud配置檔案變數寫入配置檔案統一管理

一些可能要修改的屬性值,我們可以寫入配置檔案,通過讀取配置檔案的方式,動態的注入,需要修改的時候,我們只需要修改配置檔案就可以了,避免了對程式碼的修改,方便維護 像這樣: //配置檔案中這麼寫 sms-verify: api-url: XXXXXXXXXXXXXXXX