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


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

      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('
    ','')
                postVariety.append(lin)
            return postVariety
    
    
    #读取参数数据
        def Parameter(self):
            postParameter = []
            parameterData = 'ParameterDataFile.txt'
            Data = self.ReadFile(parameterData)
            for LinData in Data:
                #检查请求数据中是否包含多元数组
                lin = LinData.replace('
    ','')
                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()
    

      

  • 相关阅读:
    emacs jedi
    opencv 基本demo
    emacs列编辑
    observable operator example
    angular keydown 例子
    回调和匿名函数
    gin cors
    angular rxjs
    python dbus note
    视频截图
  • 原文地址:https://www.cnblogs.com/Mushishi_xu/p/5164006.html
Copyright © 2020-2023  润新知