1. 程式人生 > >(loadrunner 五)指令碼中設定檢查點& IP欺騙

(loadrunner 五)指令碼中設定檢查點& IP欺騙

一、設定檢查點

轉載來源:http://www.cnblogs.com/fnng/archive/2013/03/10/2953257.html

及資料《loadrunner中新增檢查點圖文詳解.doc》

二、IP欺騙

http://www.cnblogs.com/fnng/archive/2013/03/02/2940284.html

http://blog.csdn.net/zzzmmmkkk/article/details/5248655這篇博文真不錯

一. 什麼是IP欺騙?

做什麼事首先要問個為什麼,如果知道為什麼了,即使不知道如何做,簡單,google it,答案總會找得到,google.cn不行,google.com總行,來自全球的搜尋結果,總會有幫助。

IP spoof即IP 電子欺騙,我們可以說是一臺主機裝置冒充另外一臺主機的IP地址,與其它裝置通訊,從而達到某種目的技術。 IP是網路層的一個非面向連線的協議, IP資料包的主要內容由源IP地址,目地IP地址,所傳資料構成,IP的任務就是根據每個資料報文的目的地址,路由完成報文從源地址到目的地址的傳送。至於報文在傳送過程中是否丟失或出現差錯,IP不會考慮,那是TCP的事。對IP來講,源裝置與目的裝置沒有什麼關係,它們是相互獨立的。IP包只是根據資料報文中的目的地址傳送,因此藉助高層協議的應用程式來偽造IP地址是比較容易實現的。  
      

二. 為什麼要設定IP欺騙?

對於某些伺服器,是根據IP來分配資源,當某個IP地址訪問頻繁或者訪問量過大時,伺服器會拒絕訪問,或者讓你輸入驗證碼,當然也有可能是來避免搜尋引擎robot的任意爬取。

網上還有些言論是說使用更多的IP來模擬較真實的使用者使用環境,來測試負載均衡技術的處理能力,但是我始終想不明白這跟那個有什麼關係,如果伺服器可以接受同一IP大量訪問,負載均衡不照樣起作用,照樣可以被測試到嗎?(私人觀點,意見可以保留)

三. 設定前的準備工作

1. 要有區域網的環境,因為只能設定區域網內的網段;

2. 本地的IP設定不能為“自動獲取”,必須指定一個靜態IP。

四. 如何設定

第一步:
執行Mercury LoadRunner- Tools-IP Wizard

第二步:
選擇create new setting,點選“下一步”
此時出現的頁面是讓輸入伺服器的IP地址,Loadrunner通過該地址更新路由表。
客戶端計算機上新增新的IP地址後,伺服器需要將該地址新增到路由表,以便能夠識別返回到客戶端的路由。如果伺服器和客戶端具有相同的子網掩碼、IP 類和網路,則不需要修改伺服器的路由表。如果客戶端和伺服器計算機之間有一個路由器,則伺服器需要識別經過該路由器的路徑。確保將以下路由新增到伺服器路由表:從 Web 伺服器到路由器的路由,以及從路由器到負載生成器計算機上的所有 IP 地址的路由。

第三步:
在輸入web伺服器地址的頁面中輸入地址後,直接點選“下一步”
進入IP新增頁面,點選“add”進行新增

第四步:
在from ip 輸入框中輸入起始ip,在Number to輸入框中輸入ip地址的位數,輸入正確的子網掩碼,選中“verify that new ip addresses are not already used”,點選“ok”,此時IP Wizard會自動按照設定生成IP地址,並且將已經佔用的IP列出。



第五步:

確認可用IP地址列表內容後,點選“ok”,此時IP Wizard提示需要重新啟動計算機,點選“save as”儲存IP列表,點選“ok”,重新啟動計算機。

注:當儲存IP地址列表後,下次啟用IP欺騙時直接選擇load previous setting from.....

第六步:

啟用IP欺騙

選中Tools下的Expert mode,啟動專家模式Expert mode,再點選Tools下的options,在Genearl選項卡中設定以執行緒方式或程序方式進行效能測試,這個選項一定要與當前場景的模式相匹配,也就是說使用本地虛擬IP測試時需要選中執行緒方式,使用負載生成器使用虛擬IP測試時需要選中程序方式。

在controller中,選擇 Scenario-〉Enable IP Spoofer,此項設定允許使用IP欺騙。

第七步:

驗證IP欺騙是否有效

方法一
計算機重新啟動後,在執行行中輸入:CMD,在DOS命令提示符視窗中輸入:IPCONFIG,此時便可看到虛擬的IP地址均已經被啟用;

方法二

在指令碼的Action()部分增加如下程式碼:

       char * ip=lr_get_vuser_ip();

       if(ip)

              lr_vuser_status_message("The ip address is %s",ip);

       else

              lr_vuser_status_message("IP spoofing disabled");

然後通過控制器設定並執行場景,日誌中可以看到IP地址。

第八步:

這一部很重要,如果不做這一步,很多IP地址就被佔用了,可能你們網管跟你鬧上了呵呵。開啟IP Wizard,選擇restore original settings釋放所有虛擬IP。

五.誤區及答疑

到現在為止,IP spoofer設定就告終了,但是最後有些疑問或者叫誤區需要分享一下。

Q/A:

1.自己本地的IP地址不在虛擬IP段內,有影響嗎?

  答:沒有

2.是否需要配置多個load generator來對應不同的虛擬IP呢?

  答:不用,這個過程是generator自己完成的。

3.不同的generator是否都需要設定IP spoof呢?

  答:Definitely Yes,不然的話不設IP欺騙的那臺只會使用一個本地的IP執行。

4.虛擬使用者數和虛擬IP數量上有什麼關係呢?

  答:如果虛擬使用者數小於IP數量時,每個使用者會得到不同的IP,否則,會有IP重複的現象。

5. 還有別的辦法新增虛擬IP嗎?

條條大路通羅馬,試試這個。

在一臺機上虛擬的IP跨網段的處理,可通過在伺服器端新增路由來實現。
例:
伺服器IP:192.168.0.1
測試機IP:192.168.0.206

測試機上新增的虛擬IP: 192.168.10.1~128

那麼在伺服器端執行以下命令:
route add 192.168.10.0 mask 255.255.255.0 192.168.0.206

遇到的問題:

 Error: Socket descriptor not found.  Hint: the problem might be solved applying the following:

(1) Update Run-Time Settings to Run Vuser as a process.

(2) Add the following line into mdrv.dat, [lr_socks] section: ‘ExtCmdLineConc=-UsingWinInet Yes‘.

    根據提示進行如下處理:

    思路:

    1.修改Run-Time Settings(預設是執行緒);

    2.看mdrv.dat檔案,搜尋後在loadrunner安裝目錄下dat檔案中;

       解決方法詳細如下:

      1.在run-time setting中的Miscellaneous項中設定“run vuser as a process”;

      2.在安裝目錄的dat資料夾中查詢mdrv.dat,找到[lr_socks]段,在最後新增“ExtCmdLineConc=-UsingWinInet Yes”一句; 然後再選擇了expert mode後,選擇option->general,選中“ip address allocation per process”;

      3.執行Controller施壓,如果仍然報錯,在選單欄中點選Diagnostics->configuration項,將web page diagnostics項disable掉。


相關推薦

loadrunner 指令碼設定檢查& IP欺騙

一、設定檢查點 轉載來源:http://www.cnblogs.com/fnng/archive/2013/03/10/2953257.html 及資料《loadrunner中新增檢查點圖文詳解.doc》 二、IP欺騙 http://www.cnblogs.com/fnn

x264代碼剖析:核心算法之宏塊編碼的變換編碼

區域 sse 目的 tor [1] src nco 大小 疊加 x264代碼剖析(十五):核心算法之宏塊編碼中的變換編碼 為了進一步節省圖像的傳輸碼率。須要對圖像進行壓縮,通常採用變換編碼及量化來消除圖像中的相關性以降低圖像編碼的動態範圍。本文主要介

05 React快速入門——react優化程式碼

      在之前的文章中,react程式碼的書寫有很多冗餘,所以接下來對程式碼進行一下優化。       首先優化的是關於this指向這一塊的程式碼,我們不必在每次的繫結後面加bind(this)語句,只需在建構函式裡做處理就可以

Spring.NET教程容器物件的作用域(基礎篇)

容器中物件的部署分為兩種方式:singleton和非singleton(Java裡叫prototype)。這裡的singleton指的是“單例模式”,就是說當一個物件被定義為singleton時,容器中就只會有一個共享的例項,任何時候通過id或別名請求該物件都會返回這個共享例項的引用(也就是說這個物件只會被建

vue.js學習筆記--axios取消請求

部落格:https://fisher-zh.github.io/ 在平時的開發過程中,我們會經常遇到選單切換的問題,在一些切換頻率較低的情況下,在切換到另一個頁面的時候,上一個頁面基本沒有未完成的非同步請求,即時有,在一些情況下也是可以忽略的。但是,在一些切換頻率較高的

DOM學習總結DOM的事件

 什麼是DOM事件? 事件就是當觸發這個事件之後會執行一段程式碼 使用 on 來繫結一個事件 比如:<div onclick="hj()"></div> 常見事件:1.當滑鼠點選某個元素時/或者移動到當前元素上時2.頁面載入時3.改變輸入欄位時4.當HTML表單被提交

SVM支援向量機系列理論SVM幾種核函式的對比

核函式可以代表輸入特徵之間特殊的相似性。 5.1 線性核 形式: K(x,x′)=xTx′ K ( x ,

正則表示式——統計程式碼的程式碼行、註釋行和空白行

package com.wy.regular; import java.io.BufferedReader; import java.io.File; import java.io.FileNotFo

Linux初級運維——bash指令碼程式設計之函式

一、函式         函式:功能,function  程式碼重用的功能。         結構化程式設計,不能獨立執行,需要呼叫

迴圈神經網路系列TensorflowBasicLSTMCell

1.結論 照慣例,先上結論,再說過程,不想看過程的可直接略過。 從這個圖我們可以知道,一個LSTM cell中有4個引數,並且形狀都是一樣的shape=[output_size+n,output_size],其中n表示輸入張量的維度,output_size

spring深入學習 IOC 之從單例快取獲取單例 bean

從這篇部落格開始我們開始載入 bean 的第一個步驟,從快取中獲取 bean,程式碼片段如下: Object sharedInstance = getSingleton(beanName); if (sharedInstance != null &&

linux基礎篇:系統的磁碟分割槽問題(二)

對分割槽進行加密 操作 1:建立一個分割槽 partprobe 同步分割槽資訊 2:cryptsetup luksFormat /dev/vdb1 ###加密 YES 這裡必須輸入大寫的YES,此處小寫的yes系統不識別,應該是個bug 如果沒有crypt

opencv筆記三十——MFC如何重新整理static控制元件

在MFC中用快取技術進行繪圖完全可以做到不閃爍,下面是在對話方塊應用程式OnPaint函式else分支中的程式碼,顯示一行文字,僅用來測試: CWnd * pWndShow; CDC * pDCShow; pWndShow = GetDlgItem(IDC_STC_DRA

Java基礎Java的引數傳遞機制

通過前一篇文章的介紹,我們從整體上明白了,Java類中變數的差異性、不同變數在記憶體中的儲存位置,以及變數的生命週期等。今天,我們來看一下Java中引數傳遞的機制。 形參:方法宣告時包含的引數宣告 實參:呼叫方法時,實際傳給形參的引數值 Java方法的引數傳遞機制:

YOLO原始碼詳解- YOLO的7*7個grid和RPN的9個anchors

一直不知道7×7的網格到底是幹什麼的,不就是結果預測7×7×2個框嗎,這跟把原圖分成7×7有什麼關係?不分成7×7就不能預測7×7×2個框嗎? 之前跟一個朋友討論,他說7×7的網格是作為迴歸框的初始位置,我後來的很長一段時間一直這麼認為,後來想想不對啊

使用Intellij的Spring Initializr來快速構建Spring Boot/Cloud工程

在之前的所有Spring Boot和Spring Cloud相關博文中,都會涉及Spring Boot工程的建立。而建立的方式多種多樣,我們可以通過Maven來手工構建或是通過腳手架等方式快速搭建,也可以通過《Spring Boot快速入門》一文中提到的SPRING INITIALIZR頁面工具來建立,相信每

在pandas, DataFrame的 ixloc, iloc屬性的設定誤區,以及reindex可以找到兩個df不同之處

1.ix[ ]如果想用.ix選取df中某一行某一列的值時,返回的結果是什麼?data = DataFrame([{'t':'2018-01-08 14:12:26', 'name':'yang'},{'t':'2017-01-08 14:12:26', 'name':'jia

關於大型網站技術演進的思考--網站靜態化處理—前後端分離—7

  上篇裡我講到了一種前後端分離方案,這套方案放到服務端開發人員面前比放在web前端開發人員面前或許得到的掌聲會更多,我想很多資深前端工程師看到這樣的技術方案可能會有種說不出來的矛盾心情,當我的工作逐漸走向越來越專業化的前端開發後,我就時常被這套前後端分離方案所困惑,最近我終於明白了這個困惑的本源在哪裡了,那

LucenemaxDoc 和numDocs()方法的區別

特別注意maxDoc 和numDocs()方法的區別: maxDoc()返回索引中刪除和未被刪除的文件總數, numDocs() 返回索引中未被刪除的文件總數, 因為我們刪除一個索引之後並不是真正的刪

(9)LoadRunner如何在註冊業務指令碼設定引數化唯一性

LR在錄製一個網站註冊業務的指令碼時,突然間遇到一個問題:註冊時,由於註冊使用者需要驗證唯一性,所以在LR回放指令碼時,用Run-time Viewer工具回放可以發現(先在指令碼中設定幾個斷點),真實執行的註冊指令碼使用者並沒有註冊成功,如圖: 出現這樣的問題,如