我在網(wǎng)上查找了下接口測試相關(guān)的資料,大都重點是以數(shù)據(jù)驅(qū)動的形式,將用例維護在文本或表格中,而沒有說明怎么樣去生成想要的用例,
問題:
測試接口時,比如參數(shù)a,b,c,我要先測a參數(shù),有(不傳,為空,整形,浮點,字符串,object,過短,超長,sql注入)這些情況,其中一種情況就是一條用例,同時要保證b,c的正確,確保a的測試不受b,c參數(shù)的錯誤影響
解決思路:
符合接口規(guī)范的參數(shù)可以手動去填寫,或者準備在代碼庫中。那些不符合規(guī)范的參數(shù)(不傳,為空,整形,浮點,字符串,object,過短,超長,sql注入)也可以準備在庫中作為常量反復(fù)使用
主要實現(xiàn)的功能點:
1.api參數(shù)整理到dict中,方便組合參數(shù)生成用例
2.對生成的用例進行循環(huán)執(zhí)行
3.封裝些許代碼便于使用和維護
源碼分析:
canshuxinxi.py文件用來存放api接口信息。以dict形式存放,這樣就可以API_ALL['登錄接口'][url]這種方式去取,看起來較直觀,知道取得是哪個接口的那部分信息。
#!/usr/bin/env python# -*- coding: utf-8 -*-# @Time : 2017-06-09 14:09# canshuxinxi.py# 接口信息API_ALL = { '登錄接口': { 'number': '1', 'url': 'http://www.baidu.com', 'leixing': 'post', 'head': { 'aa': 'bb', 'cc': 'dd', }, 'canshu': { 'username': 'Wbfxs001', 'password': '111111Qq', 'grant_type': 'password', }, 'qiwang': { 'code': 200, 'name': 'Wbfxs001', }, }, '退出接口': { 'number': '1', 'url': 'http://www.baidu.com', 'leixing': 'get', 'canshu': { 'username': 'Wbfxs001', 'password': '111111Qq', 'grant_type': 'password', } }}changliang.py文件用來存非常規(guī)(可能會讓接口響應(yīng)異常)參數(shù),同理也是存放在dict中,方便維護,比如以后要加新的sql注入代碼段,可以直接在后面添加
#!/usr/bin/env python# -*- coding: utf-8 -*-# @Time : 2017-06-09 14:09# changliang.py# 常用參數(shù)不傳,為空,整形,浮點,字符串,object,過短,超長,sql注入objects1 = 'xxxx'objects2 = 'ssss'ZHCS = { '為空': [''], '整形': [10, 23, 44, 88, 99], '浮點': [1.11, 2.342, -1.03], '字符串': ['aaaa', 'bbbb', 'cccc','dddd'], 'object': [objects1, objects2], '過短': ['1', '0'], '超長': ['11111111111111111111111111111111111111111111111'], 'sql注入': [';and 1=1 ;and 1=2', ";and (select count(*) from sysobjects)>0 mssql", ";and 1=(select IS_SRVROLEMEMBER('sysadmin'));--"], }
新聞熱點
疑難解答