Python接口测试

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

 

posted @ 2016-12-27 17:03  小凡的世界你不懂  阅读(2510)  评论(0编辑  收藏  举报