接口自動化之測試用例設計(一)

JMeter第一階段打卡結束之后,大家可以拿公司的接口試試手,完成接口測試。

有個很重要的點要注意:JMeter只是執(zhí)行用例或者是產生壓力的工具。至于用例怎么寫,產生多少的壓力,還是要看使用者的。

  • 舉個例子:就像一把菜刀,在大廚手里,可以花式雕刻,什么菜對應什么刀工,炒土豆絲就是土豆絲,燉土豆塊就是土豆塊;但是,同樣的一把刀,到我們(我)手里,切出來的就是土豆條。
  • 工具,就是工具,主要還是看用的那個人怎么用。

1.什么是接口?

接口

代碼里的話,一個接口其實就是一個函數,像下面這樣的兩個接口

//基于Python+flask

from flask import Flask
app = Flask(__name__)

@app.route('/')#接口為 /
def hello_world():
    return 'Hello, World!' #返回Hello, World

@app.route('/login', methods=['POST', 'GET'])#接口為login,請求方法為:post,get
def login():
    error = None
    if request.method == 'POST':
        if valid_login(request.form['username'],
                       request.form['password']):
            return log_the_user_in(request.form['username'])
        else:
            error = 'Invalid username/password'
 
    return render_template('login.html', error=error)
    
if __name__ == '__main__':
    app.run("127.0.0.1")

2.針對輸入參數

對于接口來說,輸入就是入參。常見參數類型有:數值,字符串,數組,多維數組等

2.1數值

  • 等價類

在編寫功能用例的時候,等價類是十分常用的一種方法,這個"價",不知道大家怎么理解?

1. int
2. float
3. double
  • 邊界值
  • 遍歷
  • 可能存在的問題
1.傳入非特定類型程序異常退出
2.超長字符沒有進行異常處理,導致存儲,顯示等異常
3.其他用戶可見的敏感數據

2.2 字符串

  • 等價類
1. String
2. ....
  • 邊界值
  • 遍歷

2.3 數組

  • 個數
例如:權限以數組存儲,數組上限30,但是有第31個權限
  • 內容
1.數組內容異常處理
2.重復的元素
3.元素為0
  • 可能導致的異常
1.元素個數為0,異常退出
2.重復數據沒處理,結果異常

2.4多維數組

經常會遇到數組嵌套,JSON串嵌套的情況,一層一層測試

3.針對輸出結果

  • 針對輸出結果設計測試,其實就是針對接口返回的結果進行分析測試。

3.1 業(yè)務結果

這個就根據具體的業(yè)務,具體分析輸出結果,然后進行寫用例

3.2 錯誤處理

  • 錯誤碼
  • 錯誤異常返回結果有很多情況很多值,根據返回的錯誤碼和錯誤類型進行比對,根據業(yè)務需要設計測試用例
  • 異常處理
    我們不一定能夠覆蓋所有的錯誤碼,所以常見的問題就是:
  • 1.錯誤處理不足,導致前端異常
    
  • 2.錯誤提示處理不當,導致用戶看到錯誤碼。(什么SQL異常,error等)
    
  • 3.錯誤提示不當,用戶看了提示不知道哪里出了問題,怎么解決
    

4.針對接口邏輯

針對接口邏輯,也就是場景型接口。

4.1 數值限制

例如:電商類設計了一個活動,用戶積分800分的用戶可以參與。那么,活動的一些接口就有了一個800分的限制

4.2 狀態(tài)限制

例如:電商類產品,用戶登錄之后才可以購買商品。那么,下單的一些接口就有了一個用戶登錄限制

4.3 權限限制

例如:一些OA類產品,管理員對應的權限操作,普通用戶對應的操作,業(yè)務流程對應的操作等,那么,這些接口就有了一個對應的權限限制

5. 針對接口超時

  • 沒有進行超時處理,整個流程阻塞
  • 超時后,又收到接口返回,導致邏輯出現錯亂

6.針對廢棄接口

  • 因為需求變更,暫時不用,沒有及時刪除
  • 新老版本更替,廢棄接口沒有檢查,對應服務沒有更新

7.針對接口合理性

  • 字段冗余
具體業(yè)務,具體分析
  • 接口冗余
例如:刪除單個,和多選刪除
單個刪除是不是多選刪除為1的情況?
  • 接口命名
  •   有沒有發(fā)現撈日志的時候,看了半天接口名,不知道這個接口干嘛用的
    
設計接口用例
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

友情鏈接更多精彩內容