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 ...
随机推荐
- 比较两种方式的form请求提交
[一]浏览器form表单提交 表单提交, 适用于浏览器提交.像常见的pc端的网银支付,用户在商户商城购买商品,支付时商家系统把交易数据通过form表单提交到三方支付网关,然后用户在三方网关页面完成支付 ...
- CSU 1817 Bones’s Battery Submit(二分+Floyd)
Bones's Battery Submit [题目链接]Bones's Battery Submit [题目类型]二分+Floyd &题意: 有n个点,m条边,从点ui到点vi的费电量是di ...
- Nginx性能调优
[调优]Nginx性能调优 一.Nginx优化配置 1.主配置文件优化:# vi /usr/local/nginx/conf/nginx.conf------------------------- ...
- 记无法用被动方式登录远程linux主机的原因
[环境]: linux主机:华为企业云 ftp服务端:vsftpd 客户端:ftp命令行工具,安卓端ES文件浏览器 [现象]: 在ES文件浏览器中,使用被动方式没法连接,使用主动方式可以连接,但是没法 ...
- Maximum-SubsequenceSum
题目 https://pintia.cn/problem-sets/900290821590183936/problems/900291257604861953 给出一段数列,求数列的最大子列和,并输 ...
- kail linux arp欺骗
首先连接wifi,进入内网 1,查看内网的存活主机 命令 fping -asg 192.168.1.0/24 (视不同环境而定,假设这里的路由器地址为 192.168.1.1) 也可利用其他 ...
- html5-常用的文本元素
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8&qu ...
- MongoDB在windows上的安装
D:\MongoDB\Server\4.0\bin 下载地址:https://www.mongodb.com/download-center/community 中文教程:http://www.run ...
- 人工智能深度学习框架MXNet实战:深度神经网络的交通标志识别训练
人工智能深度学习框架MXNet实战:深度神经网络的交通标志识别训练 MXNet 是一个轻量级.可移植.灵活的分布式深度学习框架,2017 年 1 月 23 日,该项目进入 Apache 基金会,成为 ...
- 每日linux命令学习-历史指令查询(history、fc、alias)
linux历史机制对命令行中输入的命令进行编号并依此保存,以维护命令历史.登录会话期间输入的命令保存在shell内存中,若终止命令则添加至历史文件. 1. 箭头符号方向键 使用键盘上的箭头方向键可以从 ...