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


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

      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()
    

      

  • 相关阅读:
    Office Shared-Addin : Favorite的下载、安装和使用(2020.2.22)
    VBA编程常用词汇英汉对照表
    Excel-DNA自定义函数的参数智能提示功能:ExcelDna.IntelliSense1.1.0.rar
    VSTO开发中级教程 配套资源下载
    TreeviewEditor.rar
    FaceIDViewer.rar
    imageMso7345.rar
    VisualStudioAddin2016Setup.rar
    VBE2014_Setup_20160709.rar
    documen.write 和 innerHTML 的区别?
  • 原文地址:https://www.cnblogs.com/Mushishi_xu/p/5164006.html
Copyright © 2020-2023  润新知