jmeter使用jdbc獲取註冊驗證碼進行註冊

2022-05-18 14:52:03 字數 3066 閱讀 8640

自動化工具測試註冊功能時,往往會遇到驗證碼,這個煩人的驗證碼怎麼能夠解決掉呢?

通常有兩種方法

讓開發禁用註冊碼,或在測試環境寫個固定的驗證碼

在jmeter中用 jdbc獲取資料庫中驗證碼

今天通過乙個例項給大家介紹一下第二種方法

1.隨機的手機號碼

2.獲取該手機號碼的資料庫驗證碼

3.手機號+驗證碼,傳送請求

4.註冊成功

(一)獲取資料庫中的資料

新增dbc connection configuration

右鍵執行緒組->新增->配置元件->jdbc connection configuration

或者net.sourceforge.jtds.jdbc.driver

jdbc:sqlserver://ip:1433;databasename=dbname

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

我這邊測試用的是mysql資料庫,值得注意的是mysqll資料庫需要指出本機的資料庫例項的名稱,例如如果例項叫mysql,那麼,rul為:jdbc:mysql://localhost:3306/mysql

(二)設定變數

分析整體思路,我們可以看出來,在這個例項中需要兩個變數,乙個是手機號,乙個是驗證碼,其中只有驗證碼是需要從資料庫獲取的

1.我們先處理簡單的,設定手機號這個變數,我這裡命名為account

右鍵執行緒組->新增->配置元件->使用者定義的變數

利用jmeter自帶的函式即可設定手機號這個隨機變數,如圖所示,我這裡設定的account即手機號是13000000000~13999999999隨機

2.接著我們再來處理較為複雜的驗證碼這個變數,我這裡設定的變數名是active_code

右鍵執行緒組->新增->sampler->jdbc request

注意variable name要和jdbc connection configuration中variable name一致,否則將獲取不到這個變數的值

然後我們再看jdbc request中查詢active_code這個變數值的sql

select active_code from uc_user_active where exchange_id='108991'and account=$;根據手機號碼查詢驗證碼,由於手機號碼也是乙個變數,所以我們where條件語句的寫法是account=$,當然這裡你也可以設定手機號碼為固定值去驗證這個驗證碼是否獲取成功

(三)錄製指令碼

當資料庫和變數都設定好之後,我們通過jmeter自帶的錄製功能,錄製傳送驗證碼和註冊這兩個請求

我們可以看到錄製下來的請求引數,其中cellphone(註冊手機號),和account的值是相等的,我們設定這個變數的引數值為$

引數 設定完成之後,我們可以執行一下,看看驗證碼是否能夠獲取成功,檢視結果樹,這個驗證碼獲取成功了,驗證碼是805173

接著我們再看註冊這個請求,正確的引數填寫應該是這樣,這裡有個地方要注意,當使用jdbc request的結果作為引數時,要寫成$這樣子,1代表你查出來的資料第一行,想取第幾行就把1改成幾,這和使用者自定義的變數稍微有點區別

(四)執行指令碼

以上操作都完成以後,我們就可以試測試一下我們的指令碼是否可靠,執行指令碼,檢視結果數和資料庫,我們可以看到已經註冊成功

使用JDBC獲取Oracle連線時報錯

the network adapter could not establish the connection 網路介面卡不能建立連線 作為初學者的來說,這個問題讓我找了好多次,每次重新開啟電腦時就可以正常獲取連線,過了一會兒,自己不知道做了什麼就會又報錯,使用pl sql時也會登入使用者半天登陸不上...

使用JDBC函式獲取表結構資訊

使用 getmetadata 方法獲取我們所需要的有關資料庫 表或者欄位的資訊。例如 resultset rs null 建立連線 connection conn congener.getconn 獲取資訊 該物件包含關於 connection 物件連線到的資料庫的元資料。元資料報括關於資料庫的表 ...

jmeter通過mysql傳送jdbc請求

3 jmeter工具安裝完畢並可以順利使用。1 開啟jmeter,並在測試計畫中新增jar包 2 新增 jbdc鏈結配置 jdbc connection configuration 新增執行緒組右擊 新增 add 配置元件 config element jdbc connection configu...