Python requests模块做接口测试
将接口相关信息写入到Excel中,然后用此脚本从Excel中读取相应的信息并组装成URL来发送接口并获取返回的结果,并将结果写入到对应的用例中.
import requests
import json
import os, sys
from openpyxl import load_workbook result_col_index = 6 def runtest(url, data, head):
r = requests.post(url=url, data=json.dumps(data), headers=head)
return r.json() def get_testcase(env, testcasefile):
testcasefile = os.path.join(os.getcwd(), testcasefile)
if not os.path.exists(testcasefile):
print('测试用例文件不存在!')
sys.exit()
wb = load_workbook(testcasefile)
ws = wb.get_sheet_by_name('testcase')
rows = ws.max_row
print(rows)
if rows < 2:
print('测试用例文件中没有用例数据,请确认后再执行!')
sys.exit()
for i in range(rows - 1):
col = str(i + 2)
casename = ws['B' + col].value
url = ws['C' + col].value
data = ws['D' + col].value
head = ws['E' + col].value
result = ws['' + col].value
url = r'http://haenkg-' + env + '.huawei.com' + url
print(type(url), url)
try:
data = eval(data)
head = eval(head)
except SyntaxError as e:
print(e)
print('json格式不正确,请确认后再提交!!')
sys.exit()
actjson = runtest(url, data, head)
result = eval(result)
print('this is actjson:', type(actjson), actjson)
print('this is result:', type(result), result)
if actjson['result'] == result['result']:
print(casename + ':成功')
ws['G' + col] = '成功'
else:
print(casename + ':失败!!!')
ws['G' + col] = '失败'
wb.save(testcasefile) if __name__ == "__main__":
if len(sys.argv) == 1:
print("请输入要执行的环境!!")
sys.exit()
envs = ['dev9', 'sit2', 'sit3', 'uat2', 'uat3']
if sys.argv[1] not in envs:
print("请输入:['dev9','sit2','sit3','uat2','uat3']中的一个环境!!")
sys.exit()
get_testcase(sys.argv[1], 'testcases.xlsx')
Python requests模块做接口测试的更多相关文章
- 使用python requests模块搭建http load压测环境
网上开源的压力测试工具超级的多,但是总有一些功能不是很符合自己预期的,于是自己动手搭建了一个简单的http load的压测环境 1.首先从最简单的http环境着手,当你在浏览器上输入了http://w ...
- 使用python asyncio+aiohttp做接口测试(TODO)
线程是操作系统层面的“并行”, 协程是应用程序层面的“并行”. 协程本质上就是:提供一个环境,保存一些需要等待的任务,当这些任务可以执行(等待结束)的时候,能够执行.再等待的过程中,程序可以执行别的任 ...
- 基于python+requests的简单接口测试
在进行接口测试时,我们可以使用已有的工具(如:jmeter)进行,也可以使用python+requests进行.以下为简单的接口测试模板: 一.提取常用变量,统一配置 新建一个config.py文件, ...
- Python requests模块学习笔记
目录 Requests模块说明 Requests模块安装 Requests模块简单入门 Requests示例 参考文档 1.Requests模块说明 Requests 是使用 Apache2 Li ...
- Python—requests模块详解
1.模块说明 requests是使用Apache2 licensed 许可证的HTTP库. 用python编写. 比urllib2模块更简洁. Request支持HTTP连接保持和连接池,支持使用co ...
- Windows下安装Python requests模块
在使用自己写的或者别人的python小工具时可能会出现类似ImportError: No module named Requests的问题: D:\tool\python\fuzz>Fuzz.p ...
- 使用monkey技术修改python requests模块
例如请求前和请求后各来一条日志,这样就不需要在自己的每个代码都去加日志了. 其实也可以直接记录'urllib3.connectionpool' logger name的日志. 修改了requests ...
- Python requests模块params、data、json的区别
json和dict对比 json的key只能是字符串,python的dict可以是任何可hash对象(hashtable type): json的key可以是有序.重复的:dict的key不可以重复. ...
- python requests模块session的使用建议及整个会话中的所有cookie的方法
话不多说,直接上代码 测试代码 服务端 下面是用flask做的一个服务端,用来设置cookie以及打印请求时的请求头 # -*- coding: utf-8 -*- from flask import ...
- Python requests模块
import requests 下面就可以使用神奇的requests模块了! 1.向网页发送数据 >>> payload = {'key1': 'value1', 'key2': [ ...
随机推荐
- Java Agent技术
在定位公司问题的时候,需要了解一下skywalking的相关知识,而agent就提上了日程. 官网文档 Agent技术是Jdk在1.5版本之后,所提供的一个在jvm启动前后对部分java类代理加强的机 ...
- JSON格式化 动态生成表格 表格转置 行列转换 Excel导出
先看效果 初始化: JSON格式化 : 生成表格-方式1 : 生成表格-方式2 : Excel导出 需要行求和.列求和功能的查看 JSON格式化 动态生成表格 表格转置 行列转换 Excel导出 行求 ...
- Shell脚本关闭Nginx进程
[root@testapp ~]# ps -ef | grep nginx root 25265 25216 0 09:22 pts/0 00:00:00 grep --color=auto ngin ...
- KingbaseES json操作符
下表列出了常用的json数据类型操作符: 操作符 操作符右侧数据类型 返回类型 描述 -> int json or jsonb 获得 JSON 数组元素(索引从 0 开始,负整数从末尾开始计) ...
- 使用 shell 脚本自动申请进京证 (六环外)
问题背景 外地车辆进入北京,需要办理<进京证>,不办理证件驶入后会被执法设备抓拍,一次罚 100 扣 1 分,目前唯一的线上办理通道是下载<北京交警>App,注册后添加车辆,就 ...
- #树上带修莫队,树链剖分#洛谷 4074 [WC2013]糖果公园
题目 分析 考虑将树转换成序列求解,那就用欧拉序,入栈一次出栈一次正好抵消掉 注意当起点不是LCA的时候要将起点加入,剩下就是带修莫队板子题了 代码 #include <cstdio> # ...
- C# 运算符详解:包含算术、赋值、比较、逻辑运算符及 Math 类应用
运算符用于对变量和值执行操作.在C#中,有多种运算符可用,包括算术运算符.关系运算符.逻辑运算符等. 算术运算符 算术运算符用于执行常见的数学运算: int x = 100 + 50; // 加法,结 ...
- Java操作FileUtils读取数据与写入数据到文件
前言:用一行代码实现读取文件内容 代码如下: 一.添加FileUtils依赖: 1 <!-- FileUtils依赖--> 2 <dependency> 3 <group ...
- centerOS网卡ens33没有inet报错failed tostart LSB: Bring up/down
没有inet 错误 cd /etc/sysconfig/network-scripts/ vi ifcfg-ens33 添加 HWADDR=<mac_of_ens33> service ...
- c# vs 中如何修改类模板
背景 在一些应用中,我们需要去修改我们的类模板,作为标记. 步骤 在这个目录下就是我们的模板: C:\Program Files\Microsoft Visual Studio 10.0\Common ...