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 ...
随机推荐
- Container(容器)与 Injector(注入)
Container(容器): History: containerd于2014年出生于Docker,最初是Docker引擎的低层运行时管理器.继2017年3月被CNCF接受之后,containerd已 ...
- webpack打包二进制文件报错
错误示例,如下图所示: 修改webpack的module部分的rules,在其中添加一下代码: { test: /\.woff[0-9]{0,}$/, loader: "url-loader ...
- MongoDB--$project和$push的区别
正文开始前,首先需要表名几条定义: 聚合(aggregate)是基于数据处理的聚合管道,每个文档通过一个由多个阶段(stage)组成的管道,可以对每个阶段的管道进行分组.过滤等功能,然后经过一系列的处 ...
- hive javaapi 002
默认开启10000端口开启前,编辑hive-site.xml设置impersonation,防止hdfs权限问题,这样hive server会以提交用户的身份去执行语句,如果设置为false,则会以起 ...
- Django中的View视图讲解
Django中的View视图(view.py)是负责处理用户请求和返回响应的逻辑. 视图函数或视图简而言之就是一个python函数,它接受一个web请求并返回一个Web响应. 此响应可以是网页的HTM ...
- Day7 错误和异常
一.异常 1.异常基础 1.为了让我们的代码在出现异常的时候,整个项目依然是可以正常运行的,所以我们引入了异常处理机制! 2.在编程过程中为了增加友好性,在程序出现bug时一般不会将错误信息显示给用户 ...
- HTML5特性&&canvas
1.HTML5是由W3C(万维网联盟,专注于XHTML 2.0)和WHATWG(专注于web表单和应用程序)共同合作的结果,2014年10月完成标准制定! 主要设计目的:为了在移动设备上支持多媒体. ...
- python - 6. Defining Functions
From:http://interactivepython.org/courselib/static/pythonds/Introduction/DefiningFunctions.html Defi ...
- UITableView 的坑
1.cell的view和contentView的区别 1.1 addSubView UITableViewCell实例上添加子视图,有两种方式:[cell addSubview:view]或[cell ...
- 【Hive学习之六】Hive Lateral View &视图&索引
环境 虚拟机:VMware 10 Linux版本:CentOS-6.5-x86_64 客户端:Xshell4 FTP:Xftp4 jdk8 hadoop-3.1.1 apache-hive-3.1.1 ...