实现接口自动化初步设想以及实现第一部
2016-01-27 17:27
363 查看
最近工作之余一直在想怎么能够提高工作效率,特别是接口测试至一块,后来想到了接口自动化,在长期的测试过程中会经常做接口测试,可是那只是单一的一个接口,那么我们怎么去做批量的接口测试呢?自己设想如下:
1、在一个工作目录下准备几个文件,分别为主程序运行文件,接口地址文本文件,请求参数文本文件,请求参数的值的文本文件
2、主要思维:通过运行主程序,去获取接口地址下的文本文件,再将该地址对应的请求参数和请求参数值对应起来,然后拼接上
3、再通过urllib发送请求到服务器,根据返回的状态码以及返回值来判断接口是否成功
下面是写的一个简化版的脚本程序:
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()
相关文章推荐
- JSON数据格式及解析下
- SecureCRT根据文件中IP执行命令VBS
- Codeforces 617C Watering Flowers (Round #340 (Div. 2) C题) nlogn算法
- Dubbo与Zookeeper、SpringMVC整合和使用(负载均衡、容错)
- explain 的用法
- iOS开发-基础:获取系统当前日期,断点输出时间
- 应用WCF遇到的坑
- Android 动画
- 网络——实现服务器
- 华为荣耀3C彻底root的方法
- JDBC 详解
- JSON数据格式及解析上
- 华为荣耀3C彻底root的方法
- LintCode :数飞机
- Spring Boot 事务的使用
- Unity UGUI——遮罩效果(Mask)
- 自定义实现wcf的用户名密码验证
- 个人总结:字典并非完全无序
- 找不到该项目无法删除
- 初始化MySQL用户(删除匿名用户)