下面是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()