Python脚本做接口测试,抛弃接口测试工具是否可行?(一)

论坛 期权论坛 期权     
橙子探索测试   2019-7-27 14:24   3027   0
最近在学习python语言,一直再想,工作中经常性会去调试接口、测试接口,于是就思考一番,怎么能抛弃以前经常依赖使用工具做接口测试的局限性,换做python脚本来做呢?接下来就产生下如下脚本,觉得还行,实用性很强,可以做基本的接口调试和接口测试,不废话了,上代码,巴拉~~~~~巴拉~~~~~巴拉
工具做接口测试:
局限性大、效率低、技术得不到提升
python做接口测试:
扩展性大、灵活、效率高、技术得到提升

  1. 温馨提示:如果看不明白的可以先复习下python requests模块基础
复制代码
  1. [/code][code]接口测试脚本
复制代码
  1. [/code][code]#!/usr/bin/env python
复制代码
  1. #_*_coding:utf-8_*_
复制代码
  1. [/code][code]import requests,json  #调用requests模块
复制代码
  1. class InterfaceTest(object):
复制代码
  1.     '''接口测试'''
复制代码
  1.     headers={"Content-Type":"application/json","Authorization":"token"}#请求头
复制代码
  1.     zp_url = 'http://test.meituan.com'  #域名
复制代码
  1.     zp_login_url=zp_url+'/login'#登录接口地址
复制代码
  1.     zp_login_param{"captcha":"1234","client_type":2,"login_type":1,"mobile":18221124103}#登录参数
复制代码
  1.     def __init__(self,headers,login_url,login_param=None):
复制代码
  1.         self.headers=headers
复制代码
  1.         self.login_url=login_url
复制代码
  1.         self.login_param = login_param
复制代码
  1.     def getToken(self):
复制代码
  1.         try:
复制代码
  1. res=requests.post(url=self.login_url,headers=self.headers,json=self.login_param)
复制代码
  1.             result=res.json()
复制代码
  1.             return result['data']['token']
复制代码
  1.         except Exception:
复制代码
  1.             print('参数错误或登录失败,获取token失败')
复制代码
  1.     def sendGet(self,api_url,param):
复制代码
  1.         try:
复制代码
  1.             res=requests.get(url=api_url,headers=self.headers).json()
复制代码
  1.             print(res)
复制代码
  1.         except Exception:
复制代码
  1.             print('参数错误')
复制代码
  1.     def sendPost(self,api_url,param):
复制代码
  1.         try:
复制代码
  1.             res=requests.post(url=api_url,headers=self.headers,json=param).json()
复制代码
  1.             print(res)
复制代码
  1.         except Exception:
复制代码
  1.             print('参数错误')
复制代码
  1.     def runMain(self,method,api_url,param=None):
复制代码
  1.         if method=='GET' or method=='get' or method=='Get':
复制代码
  1.             self.sendGet(api_url,param)
复制代码
  1.         elif method == 'POST' or method=='post' or method=='Post':
复制代码
  1.             self.sendPost(api_url,param)
复制代码
  1.         else:
复制代码
  1.             print('请传正确请求方式GET或POST')
复制代码
  1. if __name__== '__main__':
复制代码
  1.     url=InterfaceTest.zp_url+'/update_info'#接口地址
复制代码
  1.     params=[{"self_introduce":"我是参数1!"},{"self_introduce":"我是参数2!"}]#接口参数
复制代码
  1.     test = InterfaceTest(InterfaceTest.headers,InterfaceTest.zp_login_url,InterfaceTest.zp_login_param)#实例化
复制代码
  1.     InterfaceTest.headers['Authorization'] = test.getToken()# 获取token并赋值
复制代码
  1.     for param in params:
复制代码
  1.         test.runMain('POST',url,param)
复制代码
  1. [/code][code]
复制代码
  1. "C:\Program Files\Python35\python.exe" C:/Users/wangli/PycharmProjects/Test/Test/test.py
复制代码
  1. {'msg': '成功', 'data': {}, 'code': 0}
复制代码
  1. {'msg': '成功', 'data': {}, 'code': 0}
复制代码
  1. [/code][code]Process finished with exit code 0
复制代码
  1. [/code][code]
复制代码
[code][/code]

分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:10
帖子:2
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP