【重點】Jmeter----- 將 JDBC Request 查詢結果做爲下一個接口參數方法(二)

1、說明mysql

  jmeter與數據庫mysql已鏈接成功sql

2、需求數據庫

  一、前置條件:多線程

    一、已user數據庫的前8位手機號碼做爲行動計劃的名稱函數

    二、行動計劃的日期是2018-10-17spa

  二、操做步驟: .net

    1)獲取到某個月份的行動計劃,
    2)設置參數進行循環添加行動計劃
    3)統計某個月份的行動計劃數量
    4)將行動計劃標記爲已完成
    5)刪除某個月份下全部的行動計劃線程

  三、預期結果:3d

    行動計劃添加成功,而且刪除全部的某個月份下的行動計劃成功orm

3、分析與實踐

  實踐步驟:

    1)首先添加一個jdbc connection configuration

    2)添加一個jdbc request查詢出user數據庫的前8位mobile手機號碼

    3)添加一個用戶自定義變量

    4)肯定是否查詢出數據

    5)提取mobile的數據

    6)驗證參數化是否成功

    7)添加計數器

    8)把mobile的值傳遞進去

    9)設置線程數或者添加一個循環控制器

    10)那咱們的東西進行從新排序

一、需求:存在一個user表,表結構以下:

  

二、分析

  1)要查詢出user數據庫的前8位mobile手機號碼,那麼首先須要創建一個jdbc request,鏈接本地數據庫看,分別查出咱們須要的mobile

  2)todo_start爲了方便管理,這個值咱們設置作成了一個變量,方便管理

  3)查詢出全部的mobilemobile值不必定只有一個,所以咱們怎麼肯定每次取到的值做爲參數去請求下一個接口?這裏須要作一個循環

  4)我事先不知道可以查詢出某個月份的行動計劃有多少條,那如何知道咱們須要循環多少次?

三、實踐

  1)首先添加一個jdbc connection configuration,鏈接的方式根據本身的數據庫定

  

  二、添加一個jdbc request查詢出user數據庫的前8位mobile手機號碼

  

  三、肯定是否查詢出數據

  這個時候可使用添加查看結果樹,看看咱們獲取到的mobile的值,以下是獲取到的結果

  

  四、提取mobile的數據

  查看jdbc request的request裏面,查看底部的variable name填上你想使用的變量名,注意這個接口後面要本身用到,

  

  五、參數化進行傳遞

   若是直接將mobile傳入${mobile}會發現請求裏面mobile參數化並無成功,那爲何會不成功呢,原來當使用 jdbc request 的結果做爲參數時,要寫成 ${username_0}這樣子,username就是你的變量名,0 表明索引,索引是 0 就表示第一行,索引是 1 就表示第二行。

例如,我想取mobile查詢結果第 4 行的數據,那個人變量值就須要寫成 ${mobile_3},再看看上面mobile查詢結果是怎麼展現的
  

  六、添加計數器

  

  

因爲咱們從第 2 行開始取值,索引是 1,因此啓動填 1,每次咱們日後多 1,因此遞增也填 1,最大值可不填,number format 就是數字格式,若是填 000,取值是 12,那最後會顯示爲 012,而咱們只須要自己的數字,因此就填 0,引用名稱就是後面須要用的變量名

有了計數器,能遞增了,那咱們就須要

七、把mobile的值傳遞進去

  咱們上面說了 ${mobile_1}是取第二行,${mobile_2}是取第三行,依次類推,那咱們要從第二行也就是索引等於 1 開始取,一直到最後。上一步添加的計數器就起做用了,咱們設置的計數器是從 1 開始計數,每次遞增 1,那麼跟咱們想要的徹底吻合,index 就是咱們設置的計數器的變量名,能夠直接用他來代替咱們的索引 1,2,3,4 等等,那咱們如今來把mobile 和index兩個變量拼接起來,這裏若是你直接寫成 ${umobile_index} 或者 ${mobile_${index}}都是不行的,由於兩個變量不能直接拼接,須要用到一個函數 __V,不瞭解這個函數的能夠百度看看,做用就是可使 2 個變量能夠拼在一塊兒,因此咱們拼接後的 mobile 變量應該是 ${__V(mobile_${index})}

  

八、設置線程數或者添加一個循環控制器 

  可是咱們並不知道到底須要循環多少次或者須要設置多少線程數,才能讓mobile恰好傳完,這個時候,咱們須要多加一個 jdbc request 了,來查詢出咱們符合條件的數據有多少條。select count("mobile") from user where id between 1 and 8;就是查詢符合條件的數據總數,同理咱們在 variable names 填上一個變量名,以供後面使用,這裏我取 count
  

  

  count 變量是咱們以前查出來的全部數據的總數,這個總數是多少就說明咱們須要多少線程或多少次循環。ok,那咱們在 http 請求上右擊,點擊插入上級 – 邏輯控制器 – 循環控制器,循環次數,咱們使用count 變量,因爲 count變量查詢出來的結果確定只有一個,那咱們能夠直接取結果的第二行數據,索引是 1,即${count_mobile_1},這樣就能把次數肯定。這裏其實不能用添加線程的方式來作,由於這幾個 jdbc request 都在這個線程裏,若是設置多線程,jdbc request 也會屢次請求,不合理,因此咱們選擇更好的循環控制器

  

 

全部的東西都設置完了,就須要

九、從新進行排序後運行便可

 

參考連接:https://blog.csdn.net/u010978840/article/details/78227852

相關文章
相關標籤/搜索