51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

查看: 1982|回复: 2
打印 上一主题 下一主题

Jmeter接口测试图文示例

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2018-2-8 13:23:19 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
以getObjectByCode接口为例,用jmeter2.13来进行接口测试。
  测试前准备:
  测试工具及版本:jmeter 2.13 r1665067(须包含__MD5函数)
  示例接口:8.1根据单品编码查询上架状态的单品详情
  接口方法:/single/v1/getObjectByCode
  1.准备jmeter免安装包,把...\bin\jmeter.bat添加到桌面快捷方式。

 2.点击电脑桌面jmeter快捷方式,进入jmeter界面。界面默认会有一个测试计划和一个工作台,
测试计划下默认会有一个线程组。

3.测试计划命名为商品服务,右击测试计划->添加->Threads(Users)->线程组,新建一个线程组,
线程组命名为根据单品编码查询上架状态的单品详情。

4.在线程组下添加HTTP请求,路径为右击“根据单品编码查询上架状态的单品详情”->添加->Sampler->
HTTP请求。

5.根据wiki的“根据单品编码查询上架状态的单品详情”接口文档和环境文档在HTTP请求界面填写详细信息。
  5.1在Web服务器填写
  服务器名称或IP:172.18.0.120              端口号:7989

 5.2在HTTP请求填写
  Implementation:HttpClient4                方法:POST

路径:/single/v1/getObjectByCode
  5.3在请求参数区域,点击“添加”按钮添加请求参数
  请求参数列表如下:
  名称               值
  appId            ${appId}
  channel         ${channel}
  channelIp      ${channelIp}
  code             ${code}
  t                   ${time}
  terminalType  ${terminalType}
  h ${__MD5(appId=${appId}&channel=${channel}&channelIp=${channelIp}&code=${code}
&t=${time}&terminalType=${terminalType}&appKe

 注意:
  请求的所有参数,需要根据参数名=参数值的格式,按照字符字典顺序(asscii值大小)排序,若遇到
相同首字符,则判断第二个字符,以此类推,待签名字符串需要以“参数名1=参数值1&参数名2=参数
值2&..&参数名N=参数值N”的规则进行拼接。
  在对请求的参数做签名时,对于请求参数列表中那些可空的参数,如果选择使用它们,那么这些
参数的参数值必须不能为空或空值。否则请从参数列表中移除参数值为空的参数键值对。
  在对请求的参数做签名时,这些参数必须来源于请求参数列表,并且去除列表中的参数h。
  用签名密钥(appKey)对请求参数字符串MD5算法进行签名后,将得到的摘要添加到请求参数字符
尾部,签名字符串与请求参数字符串之间用&分隔。
  6.在线程组下添加用户参数,路径为右击“根据单品编码查询上架状态的单品详情”->添加->前置
处理器->用户参数。

7.把time参数化,在用户参数界面点击添加变量,在“名称”填写time,在“用户_1”内填写${__time(/1000,)}。
  这样做的目的是保证请求参数中的t的值与MD5加密的t值保持一致。

8.添加CSV文件,路径为右击“根据单品编码查询上架状态的单品详情”->添加->配置元件->CSV Data
Set Config。

 9.在CSV Data Set Config界面填写文件名、编码格式、参数名、分隔符,其它的取默认值。
  注意:jmx文件和.txt(.csv)文件须放在同一目录。示例中的jmx文件和CSV文件放在D:\apache-
jmeter-2.13\testplan,分隔符不填写时以,分隔,填写时以填写的符号进行分隔。
  Filename: getObjectByCode.txt/getObjectByCode.csv
  File encoding:utf-8
  Variable Names(comma-delimited): appId,channel,channelIp,code,terminalType
  Delimiter(use ‘\t’ for tab):,

10.在getObjectByCode.txt文件中填写有代表性的请求参数的值,包括正常值、异常值、空值。

11.getObjectByCode.txt文件中有12条请求参数值,设置循环次数为12,点击“根据单品编码查询上架
状态的单品详情”,设置循环次数为12,其它的取默认值。

12.添加察看结果树,路径为右击“商品服务”->添加->监听器->察看结果树。


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?(注-册)加入51Testing

x
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏4
回复

使用道具 举报

该用户从未签到

2#
 楼主| 发表于 2018-2-8 13:26:13 | 只看该作者

 13.点击启动按钮(绿色三角形),执行接口测试。

14.如果有多个线程组时,方便更清楚地查看结果,可以选择禁用其它线程组,启用当前线程组。

15.点击察看结果树->设置响应数据显示格式为JSON->点击任意一个HTTP请求->点击响应数据,
这样可以查看结果。
  点击请求可以查看请求的参数是否正确。
  点击清除和清除全部按钮都可以清除结果。


16.去测试数据库(172.18.1.149)查询HWG_PRT_SINGLE表,验证jmeter响应数据是正确:参数的数量、
参数的值。
  对应SQL命令为:SELECT * FROM HWG_PRT_SINGLE WHERE HWG_PRT_SINGLE.`SINGLE_CODE
`='S0002938490'


17.jmeter接口测试过程中,可以在172.18.0.120上查看对应日志。对应的命令为:
  cd /home/tomcat/tomcat-product/logs
  tail -f catalina.out



本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?(注-册)加入51Testing

x
回复 支持 反对

使用道具 举报

本版积分规则

关闭

站长推荐上一条 /1 下一条

小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

GMT+8, 2024-5-10 23:12 , Processed in 0.065061 second(s), 23 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

快速回复 返回顶部 返回列表