当前位置: 首页 > news >正文

JMeter测试接口

使用万维易源API和JMeter测试接口

🎯 项目目标

使用JMeter调用万维易源的API接口,测试天气查询和快递查询功能。


🌐 万维易源API准备

1. 注册与获取API密钥

1. 访问:万维易源官网
2. 注册账号
3. 在控制台创建应用
4. 获取 AppKey(API密钥)

2. 获取API接口文档

天气查询API

接口地址:https://way.jd.com/he/freeweather
请求方式:GET
参数:
- city: 城市名称
- appkey: 你的AppKey

快递查询API

接口地址:https://way.jd.com/jisuapi/query
请求方式:GET
参数:
- type: 快递公司编码
- number: 快递单号
- appkey: 你的AppKey

🔧 JMeter测试步骤

第一步:创建测试计划

  1. 启动JMeter
  2. 右键测试计划 → 添加 → 线程组
  3. 设置线程组参数:
    • 线程数:1(先测试)
    • Ramp-Up:1
    • 循环次数:1

第二步:添加HTTP请求(天气查询)

右键线程组 → 添加 → 取样器 → HTTP请求名称:天气查询
协议:https
服务器名称:way.jd.com
端口:443
路径:/he/freeweather
方法:GET参数:
名称       值              编码
city       北京             ✓
appkey     你的AppKey       ✓

第三步:添加HTTP请求(快递查询)

右键线程组 → 添加 → 取样器 → HTTP请求名称:快递查询
协议:https
服务器名称:way.jd.com
端口:443
路径:/jisuapi/query
方法:GET参数:
名称       值              编码
type       yuantong        ✓  (圆通快递)
number     你测试的快递单号  ✓
appkey     你的AppKey       ✓

第四步:添加查看结果树

右键线程组 → 添加 → 监听器 → 查看结果树

这样可以看到每次请求的详细结果。

第五步:运行测试

点击工具栏绿色箭头运行,查看结果。


📊 完整测试计划结构

测试计划
└── 线程组(用户组1)├── HTTP请求(天气查询)├── HTTP请求(快递查询)└── 查看结果树

💡 进阶配置

1. 添加HTTP信息头管理器

有些API需要特定的Header:

右键HTTP请求 → 添加 → 配置元件 → HTTP信息头管理器添加:
名称           值
Content-Type   application/json

2. 使用变量(参数化)

创建用户自定义变量:

右键测试计划 → 添加 → 配置元件 → 用户定义的变量变量:
名称       值
APP_KEY    你的AppKey
CITY       北京

然后在参数中使用:${APP_KEY}${CITY}

3. 添加断言(验证结果)

右键HTTP请求 → 添加 → 断言 → JSON断言JSON路径表达式:$.result.status
期望值:0  (假设0表示成功)

4. 添加聚合报告(性能测试)

右键线程组 → 添加 → 监听器 → 聚合报告

可以查看平均响应时间、吞吐量等。


🎮 实战演练示例

场景1:单个用户测试

线程组:
- 线程数:1
- 循环次数:5执行顺序:
1. 查询北京天气
2. 查询快递信息
3. 重复5次

场景2:并发测试(10个用户)

线程组:
- 线程数:10
- Ramp-Up:5秒
- 循环次数:3模拟10个用户同时查询

📝 测试结果分析

成功响应示例(天气查询):

{"code": "10000","charge": false,"result": {"status": 0,"msg": "ok","result": {"city": "北京","temp": "18℃"}}
}

关键指标检查:

  1. 响应码:200(HTTP成功)
  2. 业务状态码:看API文档定义(如0表示成功)
  3. 响应时间:一般应在3秒内
  4. 返回数据:检查是否正确返回天气/快递信息

⚠️ 常见问题与解决

Q1:返回"appkey无效"

A:检查AppKey是否正确,是否在请求中正确传递。

Q2:返回"请求频率超限"

A:免费的API通常有频率限制,可以:

  • 在JMeter中添加定时器(右键 → 添加 → 定时器)
  • 设置固定定时器,比如每隔2秒请求一次

Q3:中文城市名乱码

A:在HTTP请求中勾选参数编码,或使用URL编码的中文。

Q4:测试结果都是红色(失败)

A:检查:

  1. 网络连接是否正常
  2. API地址是否正确
  3. 参数名是否正确
  4. 是否需要HTTPS证书

🔄 测试流程优化

添加逻辑控制器

右键线程组 → 添加 → 逻辑控制器 → 循环控制器
设置循环次数:10
将HTTP请求拖入循环控制器内

添加CSV数据文件(批量测试)

右键线程组 → 添加 → 配置元件 → CSV数据文件设置
文件名:city.csv
变量名:CITY
文件内容:
北京
上海
广州
深圳

在请求参数中使用:${CITY}


📋 测试脚本保存

保存测试计划

文件 → 保存测试计划为...
建议命名:万维易源API测试.jmx

导出测试结果

查看结果树 → 右键 → 保存为CSV/XML
聚合报告 → 右键 → 保存表格为CSV

🎯 总结要点

1. 准备工作

  • 注册万维易源获取AppKey
  • 查看API文档了解接口参数

2. JMeter配置

  • 创建线程组(模拟用户)
  • 添加HTTP请求(配置API参数)
  • 添加监听器(查看结果)

3. 测试执行

  • 先单个请求测试,确保接口正常
  • 再增加并发用户数,测试性能
  • 检查响应时间和正确性

4. 结果分析

  • 查看返回数据是否正确
  • 检查响应时间是否在可接受范围
  • 统计成功率

✨ 一句话总结

万维易源提供API数据 + JMeter模拟调用 = 完整的接口测试方案

通过这个练习,你可以掌握:

  1. API接口的调用方法
  2. JMeter的基本使用技巧
  3. 接口测试的基本流程
  4. 性能测试的简单实施
http://www.jsqmd.com/news/139580/

相关文章:

  • 代码签名证书:选型与申请全攻略
  • BioSIM抗人MASP2抗体SIM0470:聚焦凝集素补体通路
  • AI时光机开发:深度解析NLS技术在现代健康管理中的应用与前景报告【健康筛查管理系统颠覆】
  • 【Android 数据】实现 Kotlin Serialization 数据序列化
  • 防水胶带供应商推荐:南通众皓胶粘制品有限公司引领行业新风尚
  • 基于Python+Django的框架的黄瓜批发市场管理系统(源码+讲解视频+LW)
  • 微信小程序uniapp-vue旅游景点门票预订服务平台
  • 微信小程序uniapp-vue我爱美食--健康菜谱分享网站
  • DeepSeek-V3.2 128K 推理秒开?百度百舸开源 CP 上下文并行方案
  • fiddler相关内容
  • transformer模型读书报告
  • Vue.js 走马灯实现方法
  • 微信小程序uniapp-vue校友录同学录班级网站
  • HTTP请求头与响应头轻松懂(基础版+练习题)
  • 探寻密封胶带优质厂家:南通众皓实力凸显
  • 基于Python+Django的框架的胶济铁路博物馆管理系统(源码+讲解视频+LW)
  • 尿液蛋白质组学:开启无创疾病诊断的“新钥匙”
  • 微信小程序uniapp-vue社区二手物品租赁系统springboot
  • fiddler中的 核心概念
  • 基于微信小程序的智慧校园管理系统(源码+讲解视频+LW)
  • 微信小程序uniapp-vue校园二手商城交易积分兑换38gw6
  • 微信小程序uniapp-vue社区养老护工服务预约评价系统
  • 计算机Java毕设实战-基于springboot的在线考试系统【完整源码+LW+部署说明+演示视频,全bao一条龙等】
  • 企业工商注册排名大揭秘,靠谱选择看这里!
  • 如何选择密封胶带定制实力厂家?南通众皓
  • 微信小程序uniapp-vue校园二手商城交易评价系统
  • 基于AES的文件夹加密解密系统的设计与实现(源码+讲解视频+LW)
  • 微信小程序uniapp-vue社区大学生心理健康服务
  • 2025-12-25 全国各地响应最快的 BT Tracker 服务器(移动版)
  • 虹科一体化车载测试,实现多协议数据零丢包