<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      用Jmeter進(jìn)行接口測試

      web接口測試工具:

           手工測試的話可以用postman ,自動化測試多是用到 Jmeter(開源)、soupUI(開源&商業(yè)版)。

                     

      下面將對前一篇Postman做接口測試中的接口用Jmeter來實現(xiàn)。

      一、Jmeter 的使用步驟

      打開Jmeter 安裝包,進(jìn)入\bin 中,找到"jmeter.bat", 點擊打開即可。

      在下圖打開的Jmeter 頁面中,右鍵“測試計劃” -> “添加” -> "Threads(Users)" -> “線程組”, 建立線程組。

      右鍵“線程組” -> “添加” -> “Sample” -> “HTTP請求”, 輸入“服務(wù)器名稱或IP”,對應(yīng)的端口號,http默認(rèn)端口號80,可以不寫。

      以下請求為GET, 所有“方法”那選擇“GET”, 輸入對應(yīng)的路徑,添加參數(shù)及值。

      注意: “服務(wù)器名稱或IP”中不用輸入http://, 請求時會自動加入(eg, 輸入api.test.cn).

      右鍵“線程組” -> “添加” -> “監(jiān)聽器” -> “察看結(jié)果數(shù)”, 添加“察看結(jié)果數(shù)”, 以察看運行后的結(jié)果,如果所示。

      這是一個簡單的接口請求例子。

      二、接口請求實例

      1. “用戶定義的變量” 的應(yīng)用

      以獲取學(xué)生信息接口(stu_info) 為例,添加一個“用戶定義的變量”,設(shè)置變量"host" 以及值,這樣在獲取學(xué)生信息接口(stu_info)就可以通過"${host}"取得“服務(wù)器名稱或IP”的值。

       

      登陸接口(login)接口也可以應(yīng)用“用戶定義的變量”的方法,如上圖所示,在“用戶定義的變量”中添加"username", "password" 變量及對應(yīng)的值, 應(yīng)用到登陸接口(login)接口請求中即可。

       2. "HTTP Cookie 管理器"的應(yīng)用

      以金幣充值接口(gold_add)為例,建立一個HTTP請求改名“金幣充值”,選取請求方式POST, 輸入對應(yīng)的host, path以及同請求一起發(fā)送的參數(shù)和值。

      由于此接口有權(quán)限驗證,需要admin用戶才可以做操作,需要添加cookie, 因此需要添加"HTTP Cookie 管理器"以傳遞Cookie。

      添加"HTTP Cookie 管理器" 方法如下圖所示, 右鍵“金幣充值” -> “添加” -> “配置元件” -> "HTTP Cookie 管理器" 

      設(shè)置Cookie 的名稱(即username 的值),值(即login Response 中的sign 值),域(已在“用戶定義的變量”中設(shè)置,只需輸入變量即可,格式為${host})

      最后可以通過“察看結(jié)果數(shù)”的響應(yīng)數(shù)據(jù)查看結(jié)果。

      3. 建立接口間的關(guān)聯(lián)

      以下以登陸接口(login)和金幣充值接口(gold_add)為例,在這兩個接口間建立關(guān)聯(lián),讓金幣充值接口(gold_add)可以實時取得登陸接口(login)的"sign" 值,不必再“HTTP Cookie 管理器”中手動輸入最新的sign 值。

      從“察看結(jié)果樹”可以看出,登陸接口(login)的Response 結(jié)構(gòu)為Json格式, sign 在 login_info 里面一層。

      3.1 應(yīng)用"jp@gc - JSON Path Extractor" 來實現(xiàn)

      右鍵“登陸” -> “后置處理器 -> "jp@gc - JSON Path Extractor" 

      通過“察看結(jié)果數(shù)”得到Response 的結(jié)果后, 將“JSONPath Expression” 輸入"$.login_info.sign", 設(shè)置變量"sign2", 給金幣充值接口(gold_add)用

      因此需要在“HTTP Cookie 管理器”中將${username}的值輸入${sign2},代替之前手動輸入的那一串碼。

      3.2 右鍵“登陸” -> “后置處理器 -> "正則表達(dá)式提取器" 

      輸入對應(yīng)的值, "jp@gc - JSON Path Extractor" 中類似,將“引用名稱”輸入"sign2",以保證和“HTTP Cookie 管理器”的一致。將正則表達(dá)式中的式用login 接口返回的 "sign": "cd2b43f1688e472e3a516b5a2c6831e8",  中的一串碼用(.*) 替換即可。

      各參數(shù)的含義參考下表:

      參數(shù)

      釋義

      引用名稱

      在HTTP等請求中,引用此數(shù)據(jù),需要用到的名稱

      正則表達(dá)式

      用于將需要的數(shù)據(jù)提取出來

      模板

      表示使用提取到的第幾個值:
      $-1$:表示取所有值
      $0$:表示隨機取值
      $1$:表示取第1個
      $2$:表示取第二個
      以此類推:$n$:表示取第n個

      匹配數(shù)字(0代表隨機)

      0 代表隨機取值,1 代表全部取值

      缺省值

      如果正則表達(dá)式?jīng)]有搜找到值,則使用此缺省值

      4. 設(shè)置斷言

      以“增加學(xué)生”接口(add_stu)為例,增加響應(yīng)斷言,以驗證添加的數(shù)據(jù)是否成功。如下圖所示設(shè)置

      通過“察看結(jié)果數(shù)”可以看到“增加學(xué)生” 金幣結(jié)果為綠色,同時響應(yīng)數(shù)據(jù)里的確有斷言中的設(shè)置的"1000"。

       

       5. “HTTP信息頭管理器”的使用

      以下圖中的“獲取所有學(xué)生信息” 為例,右鍵“獲取所有學(xué)生信息” -> “添加” -> “配置元件” -> "HTTP Cookie 管理器" , 輸入對應(yīng)的名稱和值即可。

      注意:  這里的值需要輸入完整的url, 包括http:// (eg, 輸入http://api.test.cn)

      6. POST 文件的使用方法

      與其他POST請求中添加key-value, json 數(shù)據(jù)不同的是,這個需要在HTTP 請求中點擊“Flies Upload” tab, 點擊“添加”, 然后通過“瀏覽”上傳本地的文件。

      注意: 參數(shù)名稱必須為"file"。

      7. "CSV Data Set Config" 和 “函數(shù)助手對話框”的使用

      以增加學(xué)生接口(add_stu)為例,在本地創(chuàng)建一個文件,添加name 和sex的值,對腳本設(shè)置5個線程或者循環(huán)5次,以加入這5個用戶。 

      右鍵“線程組” -> “添加” -> “配置元件” -> "CSV Data Set Config",如果僅應(yīng)用于“增加學(xué)生”接口的話,可以直接在“增加學(xué)生”接口下面創(chuàng)建"CSV Data Set Config"。

      根據(jù)下圖添加對應(yīng)的,"Variable Names" 輸入"name" 和"sex", 以逗號隔開,為避免插入的數(shù)據(jù)亂碼,將file encoding 設(shè)置為utf-8。

      由于"CSV Data Set Config"中的變量名為name 和sex,因此在“增加學(xué)生”接口的"Body Data" 中將值分別替換為${name}, ${sex}。

      由于“phone”的唯一性,每次插入一條學(xué)生信息時phone 都要求不一樣,所以對后面8位用隨機函數(shù)來實現(xiàn)。

      8. 數(shù)據(jù)庫的應(yīng)用

      以下是JMeter 驅(qū)動數(shù)據(jù)庫列表:

      數(shù)據(jù)庫

      驅(qū)動

      數(shù)據(jù)庫url

      mysql

      com.mysql.jdbc.Driver

      jdbc:mysql://host:port/{dbname}?allowMultiQueries=true

      oracle

      org.postgresql.Driver

      jdbc:postgresql:{dbname}

      PostgreSQL

      oracle.jdbc.driver.OracleDriver

      jdbc:oracle:thin:user/pass@//host:port/service

      MSSQL

      com.microsoft.sqlserver.jdbc.SQLServerDriver

      或者

      net.sourceforge.jtds.jdbc.Driver

       

      jdbc:sqlserver://IP:1433;databaseName=DBname

      或者

      jdbc:jtds:sqlserver://localhost:1433/"+"library"

       

      以下以mysql 數(shù)據(jù)庫為例。

      添加一個"JDBC Connection Configuration", 根據(jù)上表中對mysql的要求設(shè)置下圖的值。 

      添加一個"JDBC Request", 由于在Query 中有insert 和select, 所以Query Type 需要選擇"Callable Statement", 如果是單個的select 或者insert,可以選取對應(yīng)的Select Statement 和Update Statement。

      通過察看結(jié)果數(shù)看到"JDBC Request" 請求成功,響應(yīng)數(shù)據(jù)里返回insert 和select 的結(jié)果。

      登陸mysql 數(shù)據(jù)庫,查詢發(fā)現(xiàn)和Jmeter 中通過察看結(jié)果數(shù)看到的結(jié)果一致。

       

       **注意點:修改Jmeter 中的中文亂碼要將"\bin" 路徑下的"jmeter.properties" 文件中設(shè)置為 "sampleresult.default.encoding=utf-8",如下所示。

      對于Jmeter 里中文顯示不出來的問題,可以打開"\bin" 路徑下的"jmeter.properties" 文件,如下圖所示,將這幾個JS開頭的注釋去掉。

      對于以上兩個問題,修改后,需將Jmeter 重啟才能起效。

      posted @ 2017-12-14 13:18  nancy05  閱讀(133168)  評論(4)    收藏  舉報
      主站蜘蛛池模板: 亚洲ΑV久久久噜噜噜噜噜| 自偷自拍亚洲综合精品| 国产精品人一区二区三区| 亚洲综合中文字幕首页| 亚洲av永久无码精品水牛影视| 麻豆精品一区二区三区蜜臀| 中文字幕无线码免费人妻| 封丘县| 亚洲精品无码久久毛片| 欧美成人精品手机在线| 国产乱啊有帅gv小太正| 亚洲av成人无网码天堂| 亚洲中文久久久精品无码| 日韩理伦片一区二区三区| 国产精品中文字幕二区| 乐业县| 国产在线无码精品无码| 性欧美暴力猛交69hd| 亚洲第一狼人天堂网伊人| 成人国产片视频在线观看| 中文字幕结果国产精品| 亚洲国产中文在线有精品| 色狠狠一区二区三区香蕉| 国产高清av首播原创麻豆| 99久久精品久久久久久清纯| 日韩在线视频线观看一区| 国产午夜美女福利短视频| 国内女人喷潮完整视频| 亚洲AV日韩精品久久久久| 手机在线看片不卡中文字幕| 九九热精彩视频在线免费| 免费无码成人AV片在线| 双峰县| 国产精品 无码专区| 思思久99久女女精品| 日韩国产中文字幕精品| 小嫩批日出水无码视频免费| 亚洲中文久久久精品无码| 国产精品午夜无码AV天美传媒| 亚洲AV日韩AV高清在线观看| 亚洲精品美女一区二区|