下面是Python請求Post接口的實例和seed測試框架的基本使用;由於本人比較懶,未將兩者進行合並;
接口自動化測試思路:
1、接口測試的數據准備(入參、預期結果維護在CSV文件中)
2、編寫請求接口的腳本,入參讀取外部CSV文件,返回請求結果。
3、應用框架(包),將接口請求的返回的數據與預期結果(預期結果從CSV文件中獲取)進行逐個比對。(數據類型、數據准確性驗證)
4、結合業務,將多個接口串起來進行測試。
讀取csv文件內容:
#!/usr/bin/python
# -*- coding: utf-8 -*-
import csv
with open('xxx.csv','rb') as f:
reader=csv.reader(f)
for row in reader:
print row
Python請求Post接口:
#!/usr/bin/python
# -*- coding: utf-8 -*-
import urllib2,urllib
import sys
import json
reload(sys)
sys.setdefaultencoding('utf-8')
#要請求的url
url1 = 'http://*****/api/execute'
#需要傳遞的參數,並對參數進行編碼
data={
"sign":"",
"secret":"",
"oper":"loginoffice",
"type":"account",
"source":"H",
"version":"5",
"device":{"OS":"ios","IMEI":"491cd147fb8ab1a72bb8d35ac8081fb5bbafb9b4","OSV":"6.0"},
"para":{"username":"GZGYSOP1YWY1","password":"123456"},
}
#data=urllib.urlencode(data)
#將數據變為json格式
data=json.dumps(data)
url2=urllib2.Request(url1,data)
#請求
response=urllib2.urlopen(url2)
#獲取code
print response.getcode()
#獲取請求結果
apicontent=response.read()
print apicontent
#將字符串變為字典
dics=eval(apicontent)
print dics.get('data')
Python單元測試(seed框架):
#!/usr/bin/python
#-*- coding : utf-8 -*-
import sys
reload(sys)
sys.setdefaultencoding('utf-8')
import seed
case1_dict={'id':u'1001','desc':u'test1','num1':1,'num2':2,'res':3,'tags':'gao,zhaong,mod1'}
case2_dict={'id':u'1002','desc':u'test2','num1':2,'num2':3,'res':5,'tags':'gao,zhaong,mod1'}
case3_dict={'id':u'1003','desc':u'test3','num1':3,'num2':4,'res':7,'tags':'gao,zhaong,mod1'}
def add_fun(case_dict):
assert case_dict.res==case_dict.num1+case_dict.num2,u'buxing'
seed.TestCase.add(case1_dict)
seed.TestCase.add(case2_dict)
seed.TestCase.add(case3_dict)
seed.TestCase.case_run_method = add_fun
seed.run()
