91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

JMeter接口測試實戰-動態數據驗證

發布時間:2020-07-20 18:18:47 來源:網絡 閱讀:364 作者:louiezhou001 欄目:軟件技術

JMeter接口測試實戰-動態數據驗證


說到驗證就不得不說斷言, 先來看下JMeter官方給出斷言(Assertion)的定義,

用于檢查測試中得到的響應數據等是否符合預期,用以保證測試過程中的數據交互與預期一致。


使用斷言的目的:

在request的返回層面增加一層判斷機制, 因為request成功了,并不代表結果一定正確。一個Sampler可以添加多個不同形式的斷言,根據你的檢查需求來添加相應的斷言,當Sampler下所有的斷言都通過了, 那才算request成功。


那么問題來了, 要判斷的內容(預期內容)如果是在變化的, 有時候還是不確定的, 那該怎么辦呢?

舉個例子:

在某東點擊酷玩科技玩3C, 返回的分類有電腦, 數碼, 手機, 影音, 游戲, 手機配件, **二手等, 假設由于業務合作調整, 這個分類經常要變化, 同時業務部門調整分類, 測試部門未必能夠及時通知到, 類似這樣的變化, 使用斷言就會存在問題, 你的腳本會經常跑失敗, 因為斷言不通過.


那該如何解決呢? 往下看, 還是繼續上面的例子, 業務部門調整分類多數都通過CMS等內部后臺管理系統實現, 而調整后的數據最后還是存放在DB中, 只要從DB中獲取數據, 與接口返回的數據進行比較, 來判斷兩者是否一致,就滿足了業務變化的需要.


下面我們來介紹整個思想的核心部分

為了簡化演示, 我們省略了一些步驟, 從DB中獲取一個數組對象,里面的數據是動態變化的, 然后再傳給另外一個接口假設是百度, 百度拿到數組里的內容作為關鍵字逐個去搜索, 并返回不同結果. 檢查百度拿到的關鍵字是否與DB中動態數據保持一致.


 為了演示方便且截圖更為直觀,避免公司敏感信息要打碼, 先切換到本地數據庫, 里面存放的信息如下:

JMeter接口測試實戰-動態數據驗證


思路把sequence字段內容取出來放到數組中,這里sequence可能隨時在變, 然后傳給百度作為關鍵字搜索.


第一步 創建JDBC connection, 作用與數據庫建立連接

JMeter接口測試實戰-動態數據驗證


JDBC connection中的參數如何設置之前推文已經介紹過了, 本篇幅就不展開了, 不清楚的看本公眾號jmeter數據庫連接.


第二步 創建jdbc request, 作用執行增刪改查SQL

JMeter接口測試實戰-動態數據驗證

Variable names, Result variable name這兩個名詞我們放到后面講解.

Query timeout從字面就很好理解, 就是查詢超時設置, 單位s


第三步 創建BeanShell PostProcessor, 作用是處理數組對象

JMeter接口測試實戰-動態數據驗證

beanshell腳本書寫方式非固定, 只是遵循這樣一個邏輯, 先知道數組對象大小, 再用循環把對象中內容逐個輸出, 至于使用for循環還是while循環等等就看個人喜好, 那這里的sequence值從哪里來的呢?

我們上面還沒有介紹的variable names

Variables names參數使用方法:

  Jmeter官網給出的解釋是:如果給這個參數設置了值,它會保存sql語句返回的數據和返回數據的總行數。假如,sql語句返回2行,3列,且variables names設置為A,,C,那么如下變量會被設置為:


  A_#=2 (總行數)

  A_1=第1列, 第1行

  A_2=第1列, 第2行

  C_#=2 (總行數)

  C_1=第3列, 第1行

  C_2=第3列, 第2行


如果返回結果為0,那么A_#和C_#會被設置為0,其它變量不會設置值。

如果第一次返回6行數據,第二次只返回3行數據,那么第一次多的3行數據變量會被清除。

可以使用${A_#}、${A_1}...來獲取相應的值.


貌似理解起來有點費勁, 沒關系, 我們把focus聚焦到本次實戰中去, 其他的知識點后續慢慢吃透, variable name這里填上你想使用的變量名,也就是之后的接口(或者beanshell)中要用到的變量名稱.

數組對象和內容都得到了,那怎么一個個傳遞給百度接口呢? 這里就要用到另外一個功能叫計數器, 他在配置元件->計數器可以找到.


第四步 創建計數器

計數器的作用

jmeter官方給出解釋, 如果需要應用大量的數據, 且要求不能重復或者需要自增, 那么可用使用計數器來實現.

計數器(counter):允許用戶創建一個在線程組之內都可以被引用的計數器。

JMeter接口測試實戰-動態數據驗證

計數器允許用戶配置一個Starting value, 一個遞增, 一個Max value, 循環到最大值,然后重新開始, 繼續這樣,直到結束.

還有個引用名稱, 留到后面介紹


第五步 創建一個http sampler命名為百度并增加一個循環控制器

因為取出來的數據是一個數組, 要逐個賦值給百度接口

JMeter接口測試實戰-動態數據驗證


百度完整的接口自己用工具或者F12即可獲取, wd是百度關鍵字賦值, 用函數V加變量形式, 這里看到一個似曾相識的N, 就是計數器里那個引用名稱.


官方函數__V解釋, 可以用于執行變量名表達式,并返回執行結果。它可以被用于執行嵌套函數引用.

因為db中sequence存放了7條記錄, 我們在循環控制器中設置循環7次.



第六步 創建結果樹, 參看結果

好, 讓我們來執行腳本吧

JMeter接口測試實戰-動態數據驗證jdbc request SQL里查出的數據與本文第一張圖DB中保持一致, 百度接口執行了7次, 每次數據應該是db中對應的這7個不同的值

JMeter接口測試實戰-動態數據驗證JMeter接口測試實戰-動態數據驗證

JMeter接口測試實戰-動態數據驗證

JMeter接口測試實戰-動態數據驗證

JMeter接口測試實戰-動態數據驗證

JMeter接口測試實戰-動態數據驗證

JMeter接口測試實戰-動態數據驗證

再來看debug sampler

JMeter接口測試實戰-動態數據驗證

就能明白在jdbc request里Result variable name設置為test_seq和計數器里設置的Max value=${sequence_#}的含義了.

至此示例到這里就結束了,用到了jmeter里取樣器+邏輯控制器+前, 后處理器+斷言+監聽器構成整個實戰步驟演練.

引用名人的一句話:

開放創新,自信謙遜,構建“為我所知、為我所用、為我所有”的技術能力布局.


今日推薦閱讀文章精選推薦

為什么要做接口測試

JMeter數據庫操作

Jmeter接口測試-正則表達式

JMeter中文返回亂碼

Jmeter接口測試-參數化

JMeter接口測試-基礎

測試-感想


咨詢工作加微信

JMeter接口測試實戰-動態數據驗證

掃描二維碼


歡迎自薦和推薦, 需要的微信推送簡歷!

請猛戳下面二維碼了解更多

JMeter接口測試實戰-動態數據驗證




向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

营山县| 息烽县| 邓州市| 义乌市| 新昌县| 福贡县| 尉氏县| 铜山县| 平果县| 泰顺县| 喀什市| 郸城县| 玉屏| 衡水市| 绵阳市| 如东县| 都兰县| 时尚| 临海市| 建宁县| 长岭县| 汉川市| 泸溪县| 成武县| 天长市| 蚌埠市| 乌兰察布市| 海盐县| 克拉玛依市| 洛川县| 普宁市| 大庆市| 沙雅县| 宁明县| 阿城市| 玉溪市| 鹰潭市| 祁连县| 永嘉县| 高安市| 阿合奇县|