实现接口自动化初步设想以及实现第一部

  最近工作之余一直在想怎么能够提高工作效率,特别是接口测试至一块,后来想到了接口自动化,在长期的测试过程中会经常做接口测试,可是那只是单一的一个接口,那么我们怎么去做批量的接口测试呢?自己设想如下:

  1、在一个工作目录下准备几个文件,分别为主程序运行文件,接口地址文本文件,请求参数文本文件,请求参数的值的文本文件

  2、主要思维:通过运行主程序,去获取接口地址下的文本文件,再将该地址对应的请求参数和请求参数值对应起来,然后拼接上

  3、再通过urllib发送请求到服务器,根据返回的状态码以及返回值来判断接口是否成功

  下面是写的一个简化版的脚本程序:

  

#__author__ = 'ytxu'
#coding=utf-8
import urllib,urllib2,os,sys,json


class InterfaceAutoTestMain:
    #读取接口
    def InterfaceData(self):
        file = 'InterfaceData.txt'
        interfaceDataData = ''.join(self.ReadFile(file))
        return interfaceDataData



#读取变量
    def Variety(self):
        postVariety = []
        varietyData = 'VarietyDataFile.txt'
        Data = self.ReadFile(varietyData)
        for LinData in Data:
            #postData[LinData]
            lin = LinData.replace('\n','')
            postVariety.append(lin)
        return postVariety


#读取参数数据
    def Parameter(self):
        postParameter = []
        parameterData = 'ParameterDataFile.txt'
        Data = self.ReadFile(parameterData)
        for LinData in Data:
            #检查请求数据中是否包含多元数组
            lin = LinData.replace('\n','')
            postParameter.append(lin)
        return postParameter


#读取文件
    def ReadFile(self,FileName):
        f = open(FileName)
        Data = f.readlines()
        return Data

#拼接变量和数据
    def PostData(self):
        #将两个列表合并为一个字典
        Data =dict(zip(self.Variety(),self.Parameter()))
        return Data

#接口、数据拼接
    def SouData(self):
        jdata = urllib.urlencode(self.PostData()).replace('+','').replace("%27","%22")
        req = urllib2.Request(self.InterfaceData(),jdata)
        response = urllib2.urlopen(req)
        responseStr = response.read()
        code = response.getcode()
        if(code ==200):
            ResJson = json.loads(responseStr)
            if(ResJson["ret"]!=0):
                print "error"
        #print eval(code)

#脚本运行
run = InterfaceAutoTestMain()
run.SouData()

  

posted on 2016-01-27 17:27  Mushishi_xu  阅读(548)  评论(2编辑  收藏  举报

导航