学习是为了更好的应用,之前做接口测试一直用的postman、fiddler,感觉用工具还是有些局限性,于是想着把学到的python灵活运用到接口测试中,于是就有了以下案例,思考着想用unittest做个简单的接口测试脚本,可以支持单传参和多传参,平时工作中可以随时使用,不但方便,还可以巩固到学习的知识,。

思考点:

1、脚本支持单传参和多传参,利用了for循环和ddt实现

2、接口headers里需传入登录后的token值,利用了unittest每次运行用例时先执行setup初始化好headers

#unittest+ddt实现的接口测试脚本import requests,json,unittest,xlrd,os
from ddt import ddt,data,unpack
import requests@ddt
class Test(unittest.TestCase):zp_url = 'http://test.com'  # 域名params = [{"self_introduce": "我是参数1!"}, {"self_introduce": "我是参数3!"}]  # 接口参数@classmethoddef setUpClass(cls):cls.headers = {"Content-Type": "application/json", "Authorization": "token"}  # 请求头cls.zp_login_url = '/login'  # 登录接口地址cls.zp_login_param = {"captcha": "1234", "client_type": 2, "login_type": 1, "mobile": 18221124103}  # 登录传参try:res = requests.post(url=cls.zp_url + cls.zp_login_url, headers=cls.headers, json=cls.zp_login_param)cls.headers['Authorization']=res.json()['data']['token']except Exception:print('参数错误')cls.url = '/update_user_info'  # 接口地址cls.method='POST'@classmethoddef tearDownClass(cls):passdef sendGet(self,api_url,param):try:res=requests.get(url=api_url,headers=self.headers).json()print(res)except Exception:print('参数错误')def sendPost(self,api_url,param):try:res = requests.post(url=api_url, headers=self.headers, json=param).json()print(res)except Exception:print('参数错误')@data(*params)def test(self,params):if self.method=='GET' or self.method=='get' or self.method=='Get':self.sendGet(self.zp_url+self.url,params)elif self.method== 'POST' or self.method=='post' or self.method=='Post':self.sendPost(self.zp_url+self.url,params)else:print('请传正确请求方式GET或POST')
if __name__== '__main__':unittest.main()"C:\Program Files\Python35\python.exe" C:/Users/wangli/PycharmProjects/Test/Test/test.py
{'code': 0, 'data': {}, 'msg': '成功'}
..
----------------------------------------------------------------------
{'code': 0, 'data': {}, 'msg': '成功'}
Ran 2 tests in 0.462sOKProcess finished with exit code 0
#unittest实现的接口测试脚本import requests,json,unittest,xlrd,os
from ddt import ddt,data,unpack
import requests,json
@ddt
class Test(unittest.TestCase):zp_url = 'http://test.com'  # 域名@classmethoddef setUpClass(cls):cls.headers = {"Content-Type": "application/json", "Authorization": "token"}  # 请求头cls.zp_login_url = '/login'  # 登录接口地址cls.zp_login_param = {"captcha": "1234", "client_type": 2, "login_type": 1, "mobile": 18221124103}  # 熟仁直聘登录传参try:res = requests.post(url=cls.zp_url + cls.zp_login_url, headers=cls.headers, json=cls.zp_login_param)cls.headers['Authorization']=res.json()['data']['token']except Exception:print('参数错误')cls.url = '/update_user_info'  # 接口地址cls.params = [{"self_introduce": "我是参数1!"}, {"self_introduce": "我是参数3!"}]  # 接口参数cls.method='POST'@classmethoddef tearDownClass(cls):passdef sendGet(self,api_url,param):try:res=requests.get(url=api_url,headers=self.headers).json()print(res)except Exception:print('参数错误')def sendPost(self,api_url,param):try:res = requests.post(url=api_url, headers=self.headers, json=param).json()print(res)except Exception:print('参数错误')def test(self):for param in self.params:if self.method=='GET' or self.method=='get' or self.method=='Get':self.sendGet(self.zp_url+self.url,param)elif self.method== 'POST' or self.method=='post' or self.method=='Post':self.sendPost(self.zp_url+self.url,param)else:print('请传正确请求方式GET或POST')
if __name__== '__main__':unittest.main()"C:\Program Files\Python35\python.exe" C:/Users/wangli/PycharmProjects/Test/Test/test.py
{'data': {}, 'code': 0, 'msg': '成功'}
.
----------------------------------------------------------------------
Ran 1 test in 0.515sOK
{'data': {}, 'code': 0, 'msg': '成功'}Process finished with exit code 0

Python脚本做接口测试,抛弃接口测试工具是否可行?(二)相关推荐

  1. 脚本录制软件python 按键精灵 tc_使用Python来做一个屏幕录制工具的操作代码

    一.写在前面 作为一名测试,有时候经常会遇到需要录屏记录自己操作,方便后续开发同学定位.以前都是用ScreenToGif来录屏制作成动态图,偶尔的机会看到python也能实现.那就赶紧学习下. 二.效 ...

  2. python屏幕录制与回放_使用Python来做一个屏幕录制工具的操作代码

    本文给大家分享使用Python来做一个屏幕录制工具,通过实例代码给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下 一.写在前面 作为一名测试,有时候经常会遇到需要录屏记录自己操作,方 ...

  3. Python脚本做一个淘宝秒杀程序!

    Python脚本做一个淘宝秒杀程序! 先上代码 from selenium import webdriver import datetime import time import os import ...

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

    最近在学习python语言,一直再想,工作中经常性会去调试接口.测试接口,于是就思考一番,怎么能抛弃以前经常依赖使用工具做接口测试的局限性,换做python脚本来做呢?接下来就产生下如下脚本,觉得还行 ...

  5. 快看,好神奇!把Python脚本变成漂亮的机器学习工具

    本文介绍一个为ML工程师构建的应用程序框架:Streamlit 用300行Python代码编写一个具有实时神经网络推理的语义搜索引擎. 根据我的经验,每一个重要的机器学习项目最终都是由充满bug和不可 ...

  6. python脚本绘图_python实现画图工具

    简易画图工具(Python),供大家参考,具体内容如下 小黑最近在努力的入门python,正好学习到了Python的tkinker模块下的Canvas(画布)和Button(按钮)再加上相应的事务管理 ...

  7. python minimize_【趣味案例】用Python来做一个屏幕录制工具

    一.写在前面 作为一名测试,有时候经常会遇到需要录屏记录自己操作,方便后续开发同学定位.以前都是用ScreenToGif来录屏制作成动态图,偶尔的机会看到python也能实现.那就赶紧学习下. 二.效 ...

  8. 【趣味案例】用Python来做一个屏幕录制工具

    一.写在前面 作为一名测试,有时候经常会遇到需要录屏记录自己操作,方便后续开发同学定位.以前都是用ScreenToGif来录屏制作成动态图,偶尔的机会看到python也能实现.那就赶紧学习下. 二.效 ...

  9. python实现屏幕视频录制_用Python来做一个屏幕录制工具

    一.写在前面 作为一名测试,有时候经常会遇到需要录屏记录自己操作,方便后续开发同学定位.以前都是用screentogif来录屏制作成动态图,偶尔的机会看到python也能实现.那就赶紧学习下. 二.效 ...

最新文章

  1. SetGet and MACRO
  2. 桂林哪些职校可以学计算机,桂林市有几个中等职业学校
  3. RESTful Web 服务 - 消息
  4. 1.2.6 错题整理(组成原理)
  5. 一道实用linux运维问题的9种shell解答方法!
  6. 华为机试HJ90:合法IP
  7. hashcode的作用_【09期】说说hashCode() 和 equals() 之间的关系?
  8. Eclipse正式代替Oracle接管Java EE
  9. format not a string literal and no format arguments
  10. 时空数据生成对抗网络研究综述(上)
  11. Matlab光纤光栅仿真程序FBG 双FBG
  12. 组合逻辑电路的设计:竞争和险象
  13. Markdown/LaTeX数学符号、公式大全(一)
  14. html带复选框的表格,Html 表格行 ID 复选框
  15. 优化总结:有哪些APP启动提速方法?
  16. 攻防世界illusion暴力破解
  17. springboot整合mysql5.7_SpringBoot+MySQL,如何整合并使用MyBatis框架
  18. 北理网课 - Python语言程序设计 - 9.2 实例15:“霍兰德人格分析” (初学,冰山一角)
  19. css 默认样式初始化
  20. 性能测试——wrk详解

热门文章

  1. 计算机博士美国学校推荐,留学随笔:一位计算机博士留学美国的感悟
  2. php一句话怎么写_PHP一句话木马后门
  3. 应用商店应用计算机,基于中国虹计算机的应用商店的设计与实现
  4. linux无限刷屏代码,linux下如何实现简单刷屏
  5. Java常用设计模式——观察者模式
  6. java环形队列测试,JAVA数据结构之循环队列的实现
  7. python对文件的_python 对文件操作
  8. java jbutton 禁用_java-禁用后对jButton执行的操作
  9. linux脚本监控某一进程,linux监控某个进程的运行shell脚本
  10. html生成原理,Axure生成HTML的原理是什么?