做自動化測試剛入門的時候,我們一般用Jemter配置請求url/port,請求方式,然后編寫一條條case, 將對應的case中創建符合的請求body_sample
一般的后台接口,需要考慮的無非是如下:
正確的請求,驗證數據庫中對應的數據被創建/更新,驗證Response中返回碼匹配
異常的請求,對應下面的圖
必傳字段,一一驗證,
請求傳入的必傳字段1未傳
請求傳入的必傳字段2未傳
...
必傳字段傳空,一一驗證,
請求傳入的必傳字段1傳空,驗證返回xxx
請求傳入的必傳字段2傳空,驗證返回xxx
請求傳入的字符串超過最大長度限制,
比如name字段最大允許20個長度,請求傳入的name是21個中文字符,驗證返回xxx
考慮英文模式,需要接口說明文檔先澄清中英文長度是否一致,因為比如sqlserver數據庫中,varchar()和nvarchar()對中英文區別
...
請求傳入的方式為get,不是規定的post,驗證返回xxx
請求傳入的請求體是json格式
========================================================
有沒有遇到過以下一些變更,
比如請求中的必傳字段,忽然又增加了一個,
比如請求中的入參的名稱,從telephone更改成了mobile
那請求體如果本身字段已經很多了,那這時候要逐個更改測試用例中的請求體,是不是特別費事兒
而開發只需要將POJO中的實體,增加一個屬性,用對象來進行接收即可,
只需要話費幾分鍾的時間,
而測試將測試數據逐個修改,既耗費時間,又不學習新技能,這樣的蠢活兒做多了,自己都快懷疑人生。
那我們能夠動態地生成測試用例和測試數據嗎?
只要多動腦,就可以。基於上面的想法,我就開發了以下的測試平台,可以通過輸入接口的入參和入參的類型,動態生成測試用例名稱和測試用例的數據。目前是json格式的body。
https://www.88bugs.com/bug/login
如下注冊接口,需要6個入參,其中5個入參是必傳參數。
我只需要在平台中,填寫入參名稱,入參Sample,入參最大長度,就可以讓平台替我們生成測試用例。
依次點擊頁面上的button,生成對應類型的測試用例
然后點擊下載的button,將自己的測試用例下載下來
有了測試用例和測試數據,想進行運行,就很方便了,你可以用Jmeter運行,可以用java+httpclient,可以用python+requests等等
當然,我這邊做的還不全,可以繼續新增mobile應該有的格式,比如1打頭且必須長度11位且全是數字,比如郵箱需要含有@和.等,將這些常用的檢驗封裝成方法,以后直接拿來調用
如果,考慮到請求體中通常會有加密字段,根據各種規則加密,可以在寫一些方法,若干個字段通過某種方式加密等等
目前只是個demo,需要更多的時間,和api 接口的特征,再來進行開發