本篇围绕jmeter(压力测试工具),请求json与返回json串处理进行解析,初入测试,理解如有不对的地方请大家及时提点~~

在这里jmeter工具的使用不在做解释

首先说下乱码问题,在这里无脑5步保证后续无乱码之忧

1.在http请求-contentencoding:utf-8  ↓

2.http请求-advanced-implementation:Java  ↓

3.解决结果树中乱码:修改配置文件在jmeter主目录下/bin/jmeter.properties

搜索sampleresult.default.encoding将搜索的那一行变成

sampleresult.default.encoding=utf-8;

4.解决body-data乱码(也就是json串发送至服务器出现乱码)

在jmeter.properties配置文件最后加入

jsyntaxtextarea.font.family=Hack;

5.如果还是不行在sample加入beanshell sampler  ↓

输入prev.setDataEncoding("utf-8");

下面讲示例:接口流程是注册接口-登录接口-添加补充信息接口-查询信息接口-充值接口

脚本已经写好了,咱们来看看吧~

按照接口文档请求为post,在bodydata添加参数,入参为上图  ↑

添加一个结果树,请求成功  ↑

在获取学生信息接口查看是否有刚刚的信息--居然有了  ↑

jmeter传参学会了,接收json串并且关联后续接口怎么做呢?

查看登录返回接口发现sign跟我们要的session很像~我们拿来用一用  ↑

在登陆接口添加JSON Extractor(jmeter4.0自带,没有的装插件吧)  ↑

                                                    

(另外一点:请求返回结果大家可以去看一下结果树右图xml,html,json等,具体看返回什么结果,对于html的返回格式,可以用正则表达式,对于json返回的数据可以用JSON Extractor和beanshell)

JSON Extractor的使用

variables:设置一个指定名称

json path expressions路径根据上面左侧图返回的:先看最外层的大括号,其次“$.”表示最外层路径(结果跟xpath差不多)之后里面又嵌套了一个大括号{}括起来的内容也是一个整体,也可能有多个(就像文件路径一样),想要去哪个整体找就需要一层一层的去找,外层到内层的连接用"."表示,最后找到想要的sign,所以表达式为$.login_info.sign

备注:json中data是一个对象数组,data[0]代表取得的是第一个对象数组,data[*]表示全部,因为该响应只有一条数据所以可以忽略,则需要固定取值如$.login_info[0].sign意思为取第一组json里的sign值

获取到了json传sign的值,要去登陆用户并且去做充值,如果我们知道cookie和session的关系就很简单了

在充值接口下添加http请求管理器(当然还有种做法是直接加cookie管理器也行)  ↑

加入cookie和前面关联的sessionid

当然也可以通过debug sampler去校验一下有没有取到值  ↓

最后去数据库校验或者查询学生信息接口有没有增加金额就可以了~~~~·

版权声明:本文原创发表于 博客园,作者为 RainBol本文欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则视为侵权。

jmeter接口测试json详解的更多相关文章

  1. Jmeter接口测试流程详解(中科软测认证中心)

    1.jmeter简介 Jmeter是由Apache公司开发的java开源项目,所以想要使用它必须基于java环境才可以: Jmeter采用多线程,允许通过多个线程并发取样或通过独立的线程对不同的功能同 ...

  2. Jmeter常用功能详解

    嘻嘻,忙碌的一周,马上就到周四了~明天就是周五了,可以去嗨了! 这几天正式成立了一个微信订阅号,旨在免费帮助需要入门软件测试的小白! 各位走过路过的亲,欢迎订阅哦:扫描二维码即可订阅

  3. JSON详解(转)

    JSON详解 JSON的全称是”JavaScript Object Notation”,意思是JavaScript对象表示法,它是一种基于文本,独立于语言的轻量级数据交换格式.XML也是一种数据交换格 ...

  4. JSON详解(转载)

    JSON详解 阅读目录 JSON的两种结构 认识JSON字符串 在JS中如何使用JSON 在.NET中如何使用JSON 总结 JSON的全称是”JavaScript Object Notation”, ...

  5. javaScript系列:JSON详解

    JSON详解   JSON的全称是”JavaScript Object Notation”,意思是JavaScript对象表示法,它是一种基于文本,独立于语言的轻量级数据交换格式.XML也是一种数据交 ...

  6. Spring Boot 之使用 Json 详解

    Spring Boot 之使用 Json 详解 简介 Spring Boot 支持的 Json 库 Spring Web 中的序列化.反序列化 指定类的 Json 序列化.反序列化 @JsonTest ...

  7. Jmeter 测试计划元素详解

    Jmeter 测试计划元素详解 by:授客 QQ:1033553122 由于篇幅问题,采用链接分享的形式,烦请复制以下网址,黏贴到浏览器中打开,下载 http://pan.baidu.com/s/1n ...

  8. jmeter --响应断言详解

    jmeter --响应断言详解 响应断言 :对服务器的响应进行断言校验 (1)应用范围: main sample and sub sample, main sample only , sub-samp ...

  9. jmeter 基础功能详解

    jmeter 基础功能详解 thread group:包含一组线程,每个线程独立地执行测试计划. sampler:采样器,有多种不同的sample实现,用来发起各种请求,如http请求,jdbc请求, ...

随机推荐

  1. 高级UI-自定义动画框架

    有的时候会需要做一些自定义的动画效果,在会反复用到的动画效果可以考虑做成动画框架,方便使用,做成框架的话就需要考虑很多的问题,最典型的问题就是属性和方法必须要是可配置的,这里就来聊一聊自定义动画框架的 ...

  2. Django 操作已经存在的数据库

    反向操作数据库 何为反向操作.即是数据库在项目之前已经存在,不需要新建表,操作已经存在的表 # 进入站点目录下执行 python manage.py inspectdb #可以看到settings中连 ...

  3. python scipy包进行GO富集分析p值计算

    最近总是有需要单独对某一个类型的通路进行超几何分布的p值计算,这里记录一下python包的计算方法 使用scipy的stat里面的hypergeom.sf方法进行富集分析的p值计算 hsaxxxxx ...

  4. python gdal安装与简单使用

    原文链接:python gdal安装与简单使用 gdal安装方式一:在网址 https://www.lfd.uci.edu/~gohlke/pythonlibs/#gdal 下载对应python版本的 ...

  5. 2019年6月12日——开始记录并分享学习心得——Python3.7中对列表进行排序

    Python中对列表的排序按照是排序是否可以恢复分为:永久性排序和临时排序. Python中对列表的排序可以按照使用函数的不同可以分为:sort( ), sorted( ), reverse( ). ...

  6. Ubuntu的apt命令详解()deepin linux是在Ubuntu基础上开发的

    apt-cache和apt-get是apt包的管理工具,他们根据/etc/apt/sources.list里的软件源地址列表搜索目标软件.并通过维护本地软件包列表来安装和卸载软件. 查看本机是否安装软 ...

  7. golang之结构体使用注意事项和细节

    1. 结构体的所有字段在内在中是连续的 2. 结构体是用户单独定义的类型,和其它类型进行转换时需要有完全相同的字段(名字.个数和类型) 3. 结构体进行type重新定义(相当于取别名),Golang认 ...

  8. 接口中的方法都自动的被设置为public,接口中的域被自动设置为public static final

    接口中的方法都自动的被设置为public,接口中的域被自动设置为public static final

  9. Codeforces Round #421 (Div. 1) (BC)

    1. 819B Mister B and PR Shifts 大意: 给定排列$p$, 定义排列$p$的特征值为$\sum |p_i-i|$, 可以循环右移任意位, 求最小特征值和对应移动次数. 右移 ...

  10. SQL Server邮件标识点

    <br>---换行 &nbsp:---空格 <H1></H1>---标题 --定义表格格式 N'<table border="1" ...