戀戀冬季

          有你的冬天很溫暖

          LoadRunner參數(shù)的設(shè)置1

          做負(fù)載或者壓力測(cè)試時(shí),很多人選擇使用了 Loadrunner 測(cè)試工具。該工具的基本流程是先將用戶的實(shí)際操作錄制成腳本,然后產(chǎn)生數(shù)千個(gè)虛擬用戶運(yùn)行腳本(虛擬用戶可以分布在局域網(wǎng)中不同的 PC 機(jī)上),最后生成相關(guān)的報(bào)告以及分析圖。但是在錄制腳本的過(guò)程中會(huì)遇到很多實(shí)際的問(wèn)題,比如不同的用戶有不同的使用數(shù)據(jù),這就牽涉到參數(shù)的設(shè)置問(wèn)題。本文就 Loadrunner 中參數(shù)的設(shè)置進(jìn)行說(shuō)明,希望對(duì)大家有所幫助。
          在錄制程序運(yùn)行的過(guò)程中, VuGen (腳本生成器) 自動(dòng)生成了包含錄制過(guò)程中實(shí)際用到的數(shù)值的腳本。如果你企圖在錄制的腳本中使用不同的數(shù)值執(zhí)行腳本的活動(dòng)(如查詢、提交等等),那么你必須用參數(shù)值取代錄制的數(shù)值。這個(gè)過(guò)程稱為參數(shù)化腳本。
          本文主要包括如下內(nèi)容:理解參數(shù)的局限性、建立參數(shù)、定義參數(shù)的屬性、理解參數(shù)的類型、為局部數(shù)據(jù)類型設(shè)置參數(shù)的屬性、為數(shù)據(jù)文件設(shè)置參數(shù)的屬性、從已經(jīng)存在的數(shù)據(jù)庫(kù)中引入數(shù)據(jù)。
          除了 GUI ,以下的內(nèi)容適合于各種類型的用戶腳本。

          一、關(guān)于參數(shù)的定義
          在你錄制程序運(yùn)行的過(guò)程中,腳本生成器自動(dòng)生成由函數(shù)組成的用戶腳本。函數(shù)中參數(shù)的值就是在錄制過(guò)程中輸入的實(shí)際值。
          例如,你錄制了一個(gè) Web 應(yīng)用程序的腳本。腳本生成器生成了一個(gè)聲明,該聲明搜索名稱為 “UNIX” 的圖書的數(shù)據(jù)庫(kù)。當(dāng)你用多個(gè)虛擬用戶和迭代回放腳本時(shí),也許你不想重復(fù)使用相同的值 UNIX” 。那么,你就可以用參數(shù)來(lái)取代這個(gè)常量。結(jié)果就是你可以用指定的數(shù)據(jù)源的數(shù)值來(lái)取代參數(shù)值。數(shù)據(jù)源可以是一個(gè)文件,也可以是內(nèi)部產(chǎn)生的變量。
          用參數(shù)表示用戶的腳本有兩個(gè)優(yōu)點(diǎn): 可以使腳本的長(zhǎng)度變短。 可以使用不同的數(shù)值來(lái)測(cè)試你的腳本。例如,如果你企圖搜索不同名稱的圖書,你僅僅需要寫提交函數(shù)一次。在回放的過(guò)程中,你可以使用不同的參數(shù)值,而不只搜索一個(gè)特定名稱的值。
          參數(shù)化包含以下兩項(xiàng)任務(wù): 在腳本中用參數(shù)取代常量值。 設(shè)置參數(shù)的屬性以及數(shù)據(jù)源。
          參數(shù)化僅可以用于一個(gè)函數(shù)中的參量。你不能用參數(shù)表示非函數(shù)參數(shù)的字符串。另外,不是所有的函數(shù)都可以參數(shù)化的。

          二、參數(shù)的創(chuàng)建
          可以指定名稱和類型來(lái)創(chuàng)建參數(shù)。不存在對(duì)腳本中參數(shù)個(gè)數(shù)的限制。在 Web 程序的用戶腳本中,你可以使用如下過(guò)程在基于文本的腳本視圖中創(chuàng)建參數(shù)。或者,也可以在基于圖標(biāo)的樹形視圖中創(chuàng)建參數(shù)。
          在基于文本的腳本視圖中創(chuàng)建一個(gè)參數(shù):
          1
          將光標(biāo)定位在要參數(shù)化的字符上,點(diǎn)擊右鍵。打開彈出菜單。
          2
          在彈出菜單中,選擇 “Replace with a Parameter” 。選擇或者創(chuàng)建參數(shù)的對(duì)話框彈出。
          3
          “Parameter name” 中輸入?yún)?shù)的名稱,或者選擇一個(gè)在參數(shù)列表中已經(jīng)存在的參數(shù)。
          4
          “Parameter type” 下拉列表中選擇參數(shù)類型。
          5
          點(diǎn)擊 “OK” ,關(guān)閉該對(duì)話框。腳本生成器便會(huì)用參數(shù)中的值來(lái)取代腳本中被參數(shù)化的字符,參數(shù)用一對(duì) “{}” 括住。
          注意:在參數(shù)化 CORBA 或者 General-Java 用戶腳本的時(shí)候,必須參數(shù)化整個(gè)字符串,而不是其中的部分。另外注意:除了 Web 或者 WAP ,缺省的參數(shù)括號(hào)對(duì)于任何腳本都是 “{}” 。你可以在 “General Options” 對(duì)話框中的 “Parameterization” 標(biāo)簽( Tools>General Options )中定義參數(shù)括號(hào)種類。
          6
          用同樣的參數(shù)替換字符的其余情況,選中參數(shù),點(diǎn)擊右鍵,彈出菜單。從彈出的菜單中,選擇 “Replace More Occurrences” 。搜索和替換對(duì)話框彈出。 Find What” 中顯示了你企圖替換的值。 “Replace With” 中顯示了括號(hào)中參數(shù)的名稱。選擇適當(dāng)?shù)臋z驗(yàn)框來(lái)匹配整個(gè)字符或者大小寫。如果要搜索規(guī)則的表達(dá)式( . ! ? 等等),選中 “Regular Expression” 檢驗(yàn)框,然后點(diǎn)擊 “Replace” 或者 “Replace All”
          注意:小心使用 Replace All” ,尤其替換數(shù)字字符串的時(shí)候。腳本生成器將會(huì)替換字符出現(xiàn)的所有情況。
          7
          如果想用以前定義過(guò)的參數(shù)來(lái)替換常量字符串的話,選中該字符串,點(diǎn)擊右鍵,然后選擇 “Use Existing Parameter” ,子菜單 “Use Existing Parameters” 彈出。從子菜單 Use Existing Parameters” 選擇參數(shù),或者用 “Select from Parameter List” 來(lái)打開參數(shù)列表對(duì)話框。
          注意:如果用以前定義過(guò)的參數(shù)來(lái)替換常量字符串的話,那么,使用 Parameter List” 非常方便。同時(shí),還可以查看和修改該參數(shù)的屬性。
          8
          對(duì)于已經(jīng)用參數(shù)替換過(guò)的地方,如果想取回原來(lái)的值,那么,就在參數(shù)上點(diǎn)擊右鍵,然后選擇 “Restore Original value”
          Web 用戶腳本的樹形視圖中創(chuàng)建參數(shù):
          1
          、將光標(biāo)定位在企圖參數(shù)化的地方,點(diǎn)擊右鍵,從彈出的菜單中選擇 “Properties” 。則相關(guān)的屬性對(duì)話框打開。
          2
          、點(diǎn)擊在要參數(shù)化的參量的旁邊的 “ABC” 形狀的圖標(biāo)。 “Select or Create Parameter” 對(duì)話框打開。
          3
          、在 “Parameter name” 中輸入?yún)?shù)的名稱,或者從列表中選擇一個(gè)已經(jīng)存在的參數(shù)。
          4
          、在 “Parameter type” 中輸入?yún)?shù)的類型。
          5
          、點(diǎn)擊 “OK” 關(guān)閉該對(duì)話框。用戶腳本生成器會(huì)用參數(shù)來(lái)替換最初的字符串常量,并用一個(gè)表格形狀的圖標(biāo)替換 “ABC” 形狀的圖標(biāo)。
          6
          、要恢復(fù)參數(shù)化以前的值,點(diǎn)擊圖標(biāo),然后從彈出的菜單中選擇 “Undo Parameter” ,則以前的值便會(huì)重現(xiàn)。

          三、定義參數(shù)的屬性
          創(chuàng)建參數(shù)完成后,就可以定義其屬性了。參數(shù)的屬性定義就是定義在腳本執(zhí)行過(guò)程中,參數(shù)使用的數(shù)據(jù)源。在 Web 用戶腳本中,你既可以在基于文本的腳本視圖中定義參數(shù)屬性,也可以在基于圖標(biāo)的樹形視圖中定義參數(shù)屬性。下面的過(guò)程將教你如何在基于本文的腳本視圖中定義參數(shù)屬性。
          在基于文本的腳本視圖中定義參數(shù)屬性步驟:
          1
          在參數(shù)上點(diǎn)擊右鍵,有菜單彈出。
          2
          在彈出的菜單中,選擇 “Parameter Properties” 。參數(shù)屬性對(duì)話框打開,顯示和當(dāng)前參數(shù)類型相關(guān)的屬性。
          3
          輸入?yún)?shù)的屬性值。
          4
          點(diǎn)擊 “Close” 關(guān)閉參數(shù)屬性對(duì)話框。
          Web 用戶腳本的樹形視圖中定義參數(shù)的屬性:
          1
          將關(guān)標(biāo)定位在參數(shù)上,然后點(diǎn)擊右鍵,選擇 “Properties” 。屬性對(duì)話框打開。
          2
          點(diǎn)擊要定義屬性的參數(shù)旁邊的表格形狀按鈕,點(diǎn)擊右鍵,選擇 “Parameter Properties” 。參數(shù)屬性對(duì)話框打開,和參數(shù)類型相關(guān)的屬性顯示出來(lái)。
          3
          輸入?yún)?shù)的屬性。
          4
          點(diǎn)擊 “Close” 關(guān)閉參數(shù)屬性對(duì)話框。
          使用參數(shù)列表:  使用參數(shù)列表可以在任意時(shí)刻查看所有的參數(shù),創(chuàng)建新的參數(shù)、刪除參數(shù),或者修改已經(jīng)存在參數(shù)的屬性。
          1
          點(diǎn)擊參數(shù)列表按鈕或者用 “Vuser>Parameter List” 。參數(shù)列表對(duì)話框打開。
          2
          要?jiǎng)?chuàng)建新的參數(shù),點(diǎn)擊 “New” 按鈕。新的參數(shù)則被添加在參數(shù)樹中,該參數(shù)有一個(gè)臨時(shí)的名字,你可以給它重新命名,然后回車。設(shè)置參數(shù)的類型和屬性,點(diǎn)擊 OK” ,關(guān)閉參數(shù)列表對(duì)話框。
          注意:不要將一個(gè)參數(shù)命名為 unique” ,因?yàn)檫@個(gè)名稱是用戶腳本生成器本身的。用戶腳本生成器創(chuàng)建新的參數(shù),但是不會(huì)自動(dòng)用該參數(shù)在腳本中替換任意選中的字符串。
          3
          要?jiǎng)h除已有的參數(shù),那么,要先從參數(shù)樹中選擇該參數(shù),點(diǎn)擊 “Delete” ,然后確認(rèn)你的行為即可。
          4
          要修改已有參數(shù),那么,要先從參數(shù)樹中選擇該參數(shù),然后編輯參數(shù)的類型和屬性。

          四、理解參數(shù)的類型   在你定義參數(shù)屬性的時(shí)候,要指定參數(shù)值的數(shù)據(jù)源。你可以指定下列數(shù)據(jù)源類型的任何一種:
          Internal Data
          ―― 虛擬用戶內(nèi)部產(chǎn)生的數(shù)據(jù)。
          Data Files
          ―― 存在于文件中的數(shù)據(jù)。可能是已存在的文件或者是用腳本生成器新創(chuàng)建的。
          User-Defined Functions
          ―― 調(diào)用外部 DLL 函數(shù)生成的數(shù)據(jù)   Internal Data 包括以下幾種:
          1
          Date/Time    Date/Time 用當(dāng)前的日期 / 時(shí)間替換參數(shù)。要指定一個(gè) Date/Time 格式,你可以從菜單列表中選擇格式,或者指定你自己的格式。這個(gè)格式應(yīng)該和你腳本中錄制的 Date/Time 格式保持一致。
          2
          Group Name    Group Name 用虛擬用戶組名稱替換參數(shù)。在創(chuàng)建 scenario 的時(shí)候,你可以指定虛擬用戶組的名稱。當(dāng)從用戶腳本生成器運(yùn)行腳本的時(shí)候,虛擬用戶組名稱總是 None
          3
          Load Generator Name    Load Generator Name 用腳本負(fù)載生成器的名稱替換參數(shù)。負(fù)載生成器是虛擬用戶在運(yùn)行的計(jì)算機(jī)。
          4. Iteration Number
             Iteration Number 用當(dāng)前的迭代數(shù)目替換參數(shù)。
          5
          Random Number    Random Number 用一個(gè)隨機(jī)數(shù)替換參數(shù)。通過(guò)指定最大值和最小值來(lái)設(shè)置隨機(jī)數(shù)的范圍。
          6
          Unique Number    Unique Number 用一個(gè)唯一的數(shù)字來(lái)替換參數(shù)。你可以指定一個(gè)起始數(shù)字和一個(gè)塊的大小。
          7
          Vuser ID    Vuser ID 用分配給虛擬用戶的 ID 替換參數(shù), ID 是由 Loadrunner 的控制器在 scenario 運(yùn)行時(shí)生成的。如果你從腳本生成器運(yùn)行腳本的話,虛擬用戶的 ID 總是 -1

          五、數(shù)據(jù)文件   數(shù)據(jù)文件包含著腳本執(zhí)行過(guò)程中虛擬用戶訪問(wèn)的數(shù)據(jù)。局部和全局文件中都可以存儲(chǔ)數(shù)據(jù)。可以指定現(xiàn)有的 ASCII 文 件、用腳本生成器創(chuàng)建一個(gè)新的文件或者引入一個(gè)數(shù)據(jù)庫(kù)。在參數(shù)有很多已知值的時(shí)候數(shù)據(jù)文件非常有用。數(shù)據(jù)文件中的數(shù)據(jù)是以表的形式存儲(chǔ)的。一個(gè)文件中可以包含很多參數(shù)值。每一列包含一個(gè)參數(shù)的數(shù)據(jù)。列之間用分隔符隔開,比如說(shuō),用逗號(hào)。  對(duì)數(shù)據(jù)文件設(shè)置參數(shù)屬性  如果使用文件作為參數(shù)的數(shù)據(jù)源,必須指 定以下內(nèi)容:文件的名稱和位置、包含數(shù)據(jù)的列、文件格式,包括列的分隔符、更新方法。  如果參數(shù)的類型是 File” ,打開參數(shù)屬性( Parameter Properties )對(duì)話框,設(shè)置文件屬性如下:
          1
          “File path” 中輸入文件的位置,或者點(diǎn)擊 “Browse” 指定一個(gè)已有文件的位置。缺省情況下,所有新的數(shù)據(jù)文件名都是 “parameter_name.dat” ,注意,已有的數(shù)據(jù)文件的后綴必須是 .dat
          2
          點(diǎn)擊 “Edit” 。記事本打開,里面第一行是參數(shù)的名稱,第二行是參數(shù)的初始值。使用諸如逗號(hào)之類的分隔符將列隔開。對(duì)于每一新的表行開始一行新的數(shù)據(jù)。  注意:在沒(méi)有啟動(dòng)記事本的情況下如果想添加列,就在參數(shù)屬性對(duì)話框中點(diǎn)擊 Add Col” ,那么 “Add new column” 對(duì)話框就會(huì)彈出。輸入新列的名稱,點(diǎn)擊 “OK” 。腳本生成器就會(huì)添加該列到表中,并顯示該列的初始值。
          3
          “Select Column” 部分,指明包含當(dāng)前參數(shù)數(shù)據(jù)的列。你可以指定列名或者列號(hào)。列號(hào)是包含你所需要數(shù)據(jù)的列的索引。列名顯示在每列的第一行( row 0 )。
          4
          “Column delimiter” 中輸入列分隔符,你可以指定逗號(hào)、空格符等等。
          5
          “First data line” 中,在腳本執(zhí)行的時(shí)候選擇第一行數(shù)據(jù)使用。列標(biāo)題是第 0 行。若從列標(biāo)題后面的第一行開始的話,那就在 “First data line” 中輸入 1 。如果沒(méi)有列標(biāo)題,就輸入 0
          6
          “Select next row” 中輸入更新方法,以說(shuō)明虛擬用戶在腳本執(zhí)行的過(guò)程中如何選擇表中的數(shù)據(jù)。方法可以是:連續(xù)的、隨機(jī)的、唯一的、或者與其它參數(shù)表的相同行。
          6.1
          順序( Sequential ):該方法順序地給虛擬用戶分配參數(shù)值。如果正在運(yùn)行的虛擬用戶訪問(wèn)數(shù)據(jù)表的時(shí)候,它會(huì)取到下一行中可用的數(shù)據(jù)。
          6.2
          隨機(jī)( Random ):該方法在每次迭代的時(shí)候會(huì)從數(shù)據(jù)表中取隨機(jī)數(shù)
          6.3
          使用種子取隨機(jī)順序( Use Random Sequence with Seed ):如果從 Loadrunner 的控制器來(lái)運(yùn)行 scenario ,你可以指定一個(gè)種子數(shù)值用于隨機(jī)順序。每一個(gè)種子數(shù)值在測(cè)試執(zhí)行的時(shí)候代表了一個(gè)隨機(jī)數(shù)的順序。無(wú)論你何時(shí)使用這個(gè)種子數(shù)值,在 scenario 中同樣的數(shù)據(jù)順序就被分配給虛擬用戶。如果在測(cè)試執(zhí)行的時(shí)候發(fā)現(xiàn)了一個(gè)問(wèn)題并且企圖使用同樣的隨機(jī)數(shù)序列來(lái)重復(fù)測(cè)試,那么,你就可以啟動(dòng)這個(gè)功能(可選項(xiàng))。
          6.4
          唯一( Unique ): Unique 方法分配一個(gè)唯一的有順序的值給每個(gè)虛擬用戶的參數(shù)。
          6.5
          、與以前定義的參數(shù)取同一行( Same Line As ):該方法從和以前定義過(guò)的參數(shù)中的同樣的一行分配數(shù)據(jù)。你必須指定包含有該數(shù)據(jù)的列。在下拉列表中會(huì)出現(xiàn)定義過(guò)的所有參數(shù)列表。注意:至少其中的一個(gè)參數(shù)必須是 Sequential Random 或者 Unique
          如果數(shù)據(jù)表中有三列,三個(gè)參數(shù)定義在列表中: id1 name1 title1 ,如下:。
          ID Name Title
          132 Kim Manager
          187 Cassie Engineer
          189 Jane VP
          對(duì)于參數(shù) id1 ,你可以指示虛擬用戶使用 Random 方法,而為參數(shù) name1 title1 就可以指定方法 “Same Line as id1” 。所以,一旦 ID“132” 被使用,那么,姓名( Name “Kim” 和職位( Title “Manager” 同時(shí)被使用。
          7
          Updta value on 數(shù)據(jù)的更新方法
          7.1 Each iteration ――每次反復(fù)都要取新值。
          7.2
          Each occurrence ――只要發(fā)現(xiàn)該參數(shù)就要重新取值。
          7.3
          Once ――在所有的反復(fù)中都使用同一個(gè)值
          8 When out of values 超出范圍:(選擇數(shù)據(jù)為 unique 時(shí)才可用到)
          8.1
          Abort Vuser ――中止
          8.2
          Continue in a cyclic manner ――繼續(xù)循環(huán)取值
          8.3
          Continue with last value ――取最后一個(gè)值
          9
          Allocate Vuser values in the Controller 在控制器中分配值:(選擇數(shù)據(jù)為 unique 時(shí)才可用到)

          六、從已存在的數(shù)據(jù)庫(kù)中導(dǎo)入數(shù)據(jù)

          Loadrunner 允許你利用參數(shù)化從已經(jīng)存在的數(shù)據(jù)庫(kù)中導(dǎo)入數(shù)據(jù)。可以使用下列兩種方式之一:

          1. 使用 Microsoft Query (要求在系統(tǒng)上先安裝 MS Query )。

          2. 指定數(shù)據(jù)庫(kù)連接字符串和 SQL 語(yǔ)句。

          用戶腳本生成器在從數(shù)據(jù)庫(kù)中導(dǎo)入數(shù)據(jù)的過(guò)程中提供了一個(gè)向?qū)АT谙驅(qū)е校阒该魅绾螌?dǎo)入數(shù)據(jù)-通過(guò) MS Query 創(chuàng)建查詢語(yǔ)句或者直接書寫 SQL 語(yǔ)句。在導(dǎo)入數(shù)據(jù)以后,以 .dat 為后綴并作為正規(guī)的參數(shù)文件保存。

          要開始導(dǎo)入數(shù)據(jù)庫(kù)中數(shù)據(jù)的過(guò)程,在參數(shù)屬性對(duì)話框中點(diǎn)擊“ Data Wizard ”,則,數(shù)據(jù)庫(kù)查詢向?qū)棾觥?/span>

          要?jiǎng)?chuàng)建新的查詢

          1. 選擇“ Create new query ”。如果需要 MS Query 的幫助,選擇“ Show me how to use Microsoft Query ”,然后點(diǎn)擊“ Finish ”。

          如果你還沒(méi)有安裝 Microsoft Query Loadrunner 會(huì)提示你這個(gè)功能不可用。在進(jìn)行之前,從 Microsoft Office 中安裝 MS Query

          2. Microsoft Query 中遵循以下步驟,導(dǎo)入期望的表和列。

          3. 在完成數(shù)據(jù)的導(dǎo)入后,選擇“ Exit and return to Virtual User Generator ”,然后點(diǎn)擊“ Finish ”。在參數(shù)屬性對(duì)話框中數(shù)據(jù)庫(kù)記錄以 data 文件的形式顯示出來(lái)。

          要在 MS Query 中編輯并查看數(shù)據(jù),選擇“ View data or edit in Microsoft Query ”。若要結(jié)束,則選擇“ File>Exit and return to Virtual User Generator ”返回到腳本生成器。

          4. 在“ Select Column ”部分,指定包含當(dāng)前參數(shù)數(shù)據(jù)的列可以指定列號(hào)或者列名。注意:列標(biāo)題默認(rèn)為第 0 行( row 0 )。

          5. 從“ Select next row ”列表中選擇一個(gè)更新方法來(lái)告訴虛擬用戶在腳本指定的過(guò)程中如何選擇表中的數(shù)據(jù)。可選項(xiàng)是: Sequential Random Unique 或者 Same Line As 。其中每一項(xiàng)的含義文章前面已經(jīng)講述,就不再贅述。

          6. 如果選擇“ Advance row each iteration ”,虛擬用戶在每次迭代的時(shí)候會(huì)使用新的一行的數(shù)據(jù)而不是重復(fù)同樣的數(shù)據(jù)。

          要指定數(shù)據(jù)庫(kù)連接或者 SQL 語(yǔ)句

          1. 選擇“ Specify SQL Statement ”,然后點(diǎn)擊“ Next ”。

          2. 點(diǎn)擊“ Create ”指定一個(gè)新的連接字符串。選擇數(shù)據(jù)源的窗口彈出。

          3. 選擇已有的數(shù)據(jù)源,或者點(diǎn)擊“ New ”創(chuàng)建一個(gè)新的數(shù)據(jù)源。向?qū)⑻崾灸愦┻^(guò)創(chuàng)建 ODBC 數(shù)據(jù)源的過(guò)程。在完成后,連接字符串就會(huì)在連接字符串框中顯示出來(lái)。

          4. SQL 框中,輸入或者粘貼 SQL 語(yǔ)句。

          5. 點(diǎn)擊“ Finish ”繼續(xù) SQL 語(yǔ)句并導(dǎo)入數(shù)據(jù)。數(shù)據(jù)庫(kù)記錄將以 data 文件的形式顯示在參數(shù)屬性框中。

          6. 在“ Select Column ”部分中,指定包含當(dāng)前參數(shù)數(shù)據(jù)的列。你可以指定列號(hào)或者列名。

          7. 從“ Select next row ”列表中選擇一個(gè)更新方法來(lái)告訴虛擬用戶在腳本指定的過(guò)程中如何選擇表中的數(shù)據(jù)。可選項(xiàng)是: Sequential Random Unique 或者 Same Line As

          8. 如果選擇“ Advance row each iteration ”,虛擬用戶在每次迭代的時(shí)候會(huì)使用新的一行的數(shù)據(jù)而不是重復(fù)同樣的數(shù)據(jù)。

          posted on 2006-07-28 09:24 戀戀冬季 閱讀(995) 評(píng)論(0)  編輯  收藏 所屬分類: LoadRunner

          主站蜘蛛池模板: 南汇区| 彰化县| 依兰县| 马尔康县| 兴国县| 新闻| 朝阳县| 天等县| 息烽县| 商洛市| 高尔夫| 松桃| 乌拉特中旗| 环江| 黎平县| 仁寿县| 谷城县| 磐安县| 隆化县| 米泉市| 昭通市| 竹山县| 黑山县| 保山市| 明光市| 绥德县| 东山县| 无极县| 章丘市| 金川县| 固镇县| 陇西县| 苏尼特左旗| 同心县| 临城县| 岳阳市| 马山县| 府谷县| 九龙县| 富宁县| 治县。|