dubbo接口FindMemberInfoTest思路整合
package com.yzb.user_center;
/**
* @Created by IntelliJ IDEA.
* @Author tk
* @Date 2018/7/31
* @Time 11:43
*/
import com.alibaba.fastjson.JSON;
import com.xkx.service.base.ResponseResult;
import com.xkx.service.usercenter.api.XkxMemberApi;
import com.xkx.service.usercenter.request.data.XkxMemberQueryRequest;
import com.xkx.service.usercenter.response.XkxMemberResponse;
import org.apache.jmeter.config.Arguments;
import org.apache.jmeter.protocol.java.sampler.AbstractJavaSamplerClient;
import org.apache.jmeter.protocol.java.sampler.JavaSamplerContext;
import org.apache.jmeter.samplers.SampleResult;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
public class FindMemberInfoTest extends AbstractJavaSamplerClient {
private SampleResult results;
private final String configLocation = "classpath:aplication-context.xml";
private ApplicationContext appContext = null;
private XkxMemberApi xkxMemberApi;
private String memberIds;
private String source;
public Arguments getDefaultParameters() {
Arguments args = new Arguments();
args.addArgument("memberIds", "1065111");
args.addArgument("source","13605245");
return args;
}
//调用服务并获取接口对象
public void setupTest(JavaSamplerContext context) {
appContext = new ClassPathXmlApplicationContext(configLocation);
xkxMemberApi = appContext.getBean("xkxMemberApi", XkxMemberApi.class); }
public SampleResult runTest(JavaSamplerContext context) {
results = new SampleResult();
memberIds=context.getParameter("memberIds", memberIds);
source = context.getParameter("source",source);
//方法
XkxMemberQueryRequest memberRequest= new XkxMemberQueryRequest();
memberRequest.setIsFilter(0);
//获取memberIds是个list
List<String> memberIds = new ArrayList<String>();
memberRequest.setMemberIds(memberIds);
memberRequest.setIsFilter(1);
memberRequest.setSource(source);
results.sampleStart();
//对象关联方法,方法传入参数,用fiResp接受
//xkxMemberApi对象,findMemberInfo方法,XkxMemberQueryRequest参数(分为:memberIds(list),isFilter(int整形),source
ResponseResult<Map<String,XkxMemberResponse>> fiResp = xkxMemberApi.findMemberInfo(memberRequest);
results.sampleEnd();
Integer result = fiResp.getResult() == null ? 0 : fiResp.getResult();
System.out.println("result***"+JSON.toJSONString(fiResp));
results.setSuccessful(result.equals(1));
return results;
}
public void teardownTest(JavaSamplerContext arg0) {
}
public static void main(String[] args) {
Arguments argu = new Arguments();
JavaSamplerContext javaSamplerContex = new JavaSamplerContext(argu);
FindMemberInfoTest maintest = new FindMemberInfoTest();
maintest.setupTest(javaSamplerContex);
maintest.runTest(javaSamplerContex);
}
}
代码思路分析:
1、关键的一句:ResponseResult<Map<String,XkxMemberResponse>> fiResp = xkxMemberApi.findMemberInfo(memberRequest);
xkxMemberApi:对象
findMemberInfo:方法
memberRequest:参数
2、XkxMemberQueryRequest memberRequest= new XkxMemberQueryRequest();
XkxMemberQueryRequest:方法的类型,声明以后就需要对参数就行传值
memberRequest.setMemberIds(memberIds); 传入参数 memberIds
3、和jmeter关联的地方,也是整个脚本比较核心的逻辑关系
args.addArgument("memberIds", "1065111");
args.addArgument("source","13605245");
memberIds=context.getParameter("memberIds", memberIds);
source = context.getParameter("source",source);
memberRequest.setMemberIds(memberIds);
memberRequest.setIsFilter(1);
memberRequest.setSource(source);
这三段代码的关系是:
1、jemter面板需要暴露出memberIds和source(即:需要传入的参数)
2、第二段的代码用文本来接受jemter传入的参数
3、第三段代码用方法的类型声明的变量接受memberIds和source并传入(即:memberRequest.setMemberIds(memberIds);)
----这样整体的参数就偶合起来了
dubbo接口FindMemberInfoTest思路整合的更多相关文章
- Jmeter实现dubbo接口压测案例
当前项目中重构了消息服务,需要对消息服务接口做性能压测,评估消息服务的性能情况 通过和开发对接,目前消息服务是通过dubbo接口对内提供服务,所以才有了这边文章的记录 最初的压测这个dubbo接口有三 ...
- 关于dubbo接口性能测试
最初的压测这个dubbo接口有三种思路: .第一种就是基于业务,比如注册业务,注册成功后,会发送短信消息到用户手机,通过业务调用消息服务,最容易实现,但是业务瓶颈最大导致测试结果不准 .第二种是通 ...
- Dubbo的Filter实战--整合Oval校验框架
前言: 其实很早之前就想写一篇关于oval和具体服务相整合的常见做法, 并以此作为一篇笔记. 趁现在项目中间空闲期, 刚好对dubbo的filter有一些了解. 因此想结合两者, 写一下既结合校验框架 ...
- 秒懂Dubbo接口(原理篇)
引言 背景 单一应用架构 垂直应用架构 分布式服务架构 流动计算架构 为什么要用 Dubbo? 什么是分布式? 为什么要分布式? Dubbo 的架构 Dubbo 的架构图解 Dubbo 工作原理 Du ...
- 从应用层到网络层排查 Dubbo 接口超时全记录
大家好,我是坤哥 我们常说面试造火箭,很多人对此提出质疑,相信大家看了这篇文章会明白面试造火箭的道理,这篇排查问题的技巧涉及到索引,GC,容器,网络抓包,全链路追踪等基本技能,没有这些造火箭的本事,排 ...
- jmeter测试dubbo接口
本文讲解jmeter测试dubbo接口的实现方式,文章以一个dubbo的接口为例子进行讲解,该dubbo接口实现的功能为: 一:首先我们看服务端代码 代码架构为: 1:新建一个maven工程,pom文 ...
- 利用jmeter+JAVA对RPC的单接口(dubbo接口等)进行性能测试
建立JAVA项目 建立maven项目,加入Jmeter所需要的JAR包依赖. POM.xml 加入如下: <dependency> <groupId>org.apache.j ...
- dubbo接口demo开发
接口需求 客户端输入uncleyong(当然,也可以输入其它字符串),服务端返回hello uncleyong 开发环境 jdk + idea + maven + zookeeper jdk安装 id ...
- jmeter5.1测试dubbo接口
dubbo接口功能介绍 客户端输入uncleyong(当然,也可以是其他字符串),服务端返回hello uncleyong 开发dubbo服务jmeter客户端 idea中创建模块dubbo_jmet ...
随机推荐
- Linux平台Oracle 12.1.0.2 单实例安装部署
主题:Linux平台Oracle 12.1.0.2 单实例安装部署 环境:RHEL 6.5 + Oracle 12.1.0.2 需求:安装部署OEM 13.2需要Oracle 12.1.0.2版本作为 ...
- 31.JS实现控制HTML5背景音乐播放暂停
实现控制网站背景音乐的播放暂停在html5中是非常容易和简单的,仅仅几行代码即可实现.首先在网页中嵌入背景音乐,html5代码为: <script src="http://wuover ...
- MyBatis基础入门《六》Like模糊查询
MyBatis基础入门<六>Like模糊查询 描述: 未改动的文件,不再粘贴出来.项目中SQL的xml映射文件重要标签如下: mapper namespace cache 配置给定命令空间 ...
- Nginx的介绍和安装详解
[介绍+安装]Nginx的介绍和安装详解 == 介绍和安装 == Nginx是一个自由.开源.高性能及轻量级的HTTP服务器及反转代理服务器, 其性能与IMAP/POP3代理服务器相当.Nginx ...
- sql 将某一列转成字符串并且去掉最后一个逗号
) SET @center_JZHW = ( SELECT DISTINCT STUFF( ( SELECT ','''+ qudao+'''' FROM CreatedType WITH ( NOL ...
- itextsharp display:none无效的bug
在使用itextsharp实现 html 2 pdf时,发现display:none无效.如 <div style="display: none">应该隐藏</d ...
- Day11 多进程与多线程编程
一.进程与线程 1.什么是进程(process)? An executing instance of a program is called a process. Each process provi ...
- Yii2返回以主键id为键名的数组
branch.php <?php namespace app\models; use Yii; /** * This is the model class for table "bra ...
- Java输入输出流(IO)-----文件类File详解
1.java.io.File类简介 凡是与输入.输出相关的类.接口等都定义在java.io包下 File是一个类,可以有构造器创建其对象.此对象对应着一个文件(.txt .avi .doc .p ...
- codeforces 975C Valhalla Siege
题意: 有n个巫师站成一列,每个巫师有自己的血量. 一个人射箭攻击他们,每次造成若干点伤害,巫师按照给定的顺序承受伤害,如果伤害大了,那么死掉,伤害落到下一个巫师身上. 如果一轮攻击之后,所有的巫师都 ...