batchGetAnchorLevel(dubbo接口)
一、编写脚本前的准备工作
1、安装idea,安装本地maven库,并在idea里面配置maven
2、导入git源码(目的在于下载所依赖的基础包)-->File-new-Project from version Contorl-git
3、加入pom文件,下载jmeter依赖的包
4、找开发要本次测试接口的pom文件,下载依赖的业务包
二、开发提供接口文档后,具体的测试方法
B、在resurces下面建一个文件applicationcontext.xml文件—>输入:<dubbo:reference id="LiveVideoFacade" interface="com.yzb.service.liveroomfacade.live.facade.LiveVideoFacade" protocol="dubbo" timeout="3000" actives="0" retries="0" check="false" url="172.16.254.137:20881" />
其中: id="LiveVideoFacade”指:服务的对象,interface="com.yzb.service.liveroomfacade.live.facade.LiveVideoFacade 指:接口地址
url="172.16.254.137:20881" 指:连接的服务器地址,端口可以从第四步查询
三、详细的代码:
package com.yzb.user; import com.alibaba.fastjson.JSON;
import com.yixia.anchor.level.api.AnchorLevelService;
import com.yixia.anchor.level.api.request.BatchGetAnchorLevelRequest;
import com.yixia.anchor.level.api.response.BatchGetAnchorLevelResp;
import com.yixia.anchor.level.api.response.ResponseResultVo;
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.io.*;
import java.util.ArrayList;
import java.util.LinkedList;
import java.util.List; public class batchGetAnchorLever extends AbstractJavaSamplerClient {
//连接dubbo服务
private static final String configLocation = "classpath:aplication-context.xml";
private SampleResult results;
private static ApplicationContext appContext = null;
private String memberids;
private AnchorLevelService anchorLevelService; //参数暴露在jmeter面板上
public Arguments getDefaultParameters() {
Arguments args = new Arguments();
args.addArgument("memberids","");
return args;
} //调用服务并获取接口对象
public void setupTest(JavaSamplerContext context) {
appContext = new ClassPathXmlApplicationContext(configLocation);
anchorLevelService = (AnchorLevelService) appContext.getBean("anchorLevelService"); } //声明对象里面的参数,并由参数获取是由memberlist组成
public SampleResult runTest(JavaSamplerContext Context) {
results = new SampleResult();
BatchGetAnchorLevelRequest batchGetAnchorLevelRequest = new BatchGetAnchorLevelRequest();
memberids = Context.getParameter("memberids", memberids);
List<String> memberidlist = new LinkedList<String>();
memberidlist.add("10380124");
//memberidlist.add("10380312"); //从CSV文件内读取member
File csv = new File("/Users/wufq/lidong/file/xk_anchor_task_score.csv");
BufferedReader br = null;
try
{
br = new BufferedReader(new FileReader(csv));
} catch (FileNotFoundException e)
{
e.printStackTrace();
}
String line = "";
String everyLine = "";
List<String> memberidlist = new LinkedList<String>();
try {
//List<String> allString = new ArrayList<>();
while ((line = br.readLine()) != null) //读取到的内容给line变量
{
everyLine = line;
String memberId = everyLine.split(",")[0];
//System.out.println(memberId);
memberidlist.add(memberId);
}
System.out.println("csv表格中所有行数:"+memberidlist.size());
} catch (IOException e)
{
e.printStackTrace();
} batchGetAnchorLevelRequest.setMemberIds(memberidlist); results.sampleStart();
//计算程序开始到结束所消耗的时间
long start = System.currentTimeMillis();
try {
Thread.sleep(5000);
} catch (InterruptedException e) {
e.printStackTrace();
}
long end = System.currentTimeMillis();
System.out.println("start time:" + start + "; end time:" + end + "; Run time:" + (end - start) + "(ms)"); //对象关联方法,方法传入参数,用res接受
ResponseResultVo<BatchGetAnchorLevelResp> res = anchorLevelService.batchGetAnchorLevel(batchGetAnchorLevelRequest);
results.sampleEnd(); if (res.getResult().equals("10000")){
results.setSuccessful(true);
System.out.println("查询成功");
System.out.println(JSON.toJSONString(res));
}else{
results.setSuccessful(false);
}
return results;
} public void teardownTest(JavaSamplerContext arg0) {
System.out.println("test end");
} public static void main(String[] args){
batchGetAnchorLever test = new batchGetAnchorLever();
Arguments arguments = test.getDefaultParameters();
JavaSamplerContext context = new JavaSamplerContext(arguments);
test.setupTest(context);
test.runTest(context);
test.teardownTest(context);
}
}
batchGetAnchorLevel(dubbo接口)的更多相关文章
- jmeter测试dubbo接口
本文讲解jmeter测试dubbo接口的实现方式,文章以一个dubbo的接口为例子进行讲解,该dubbo接口实现的功能为: 一:首先我们看服务端代码 代码架构为: 1:新建一个maven工程,pom文 ...
- 利用jmeter+JAVA对RPC的单接口(dubbo接口等)进行性能测试
建立JAVA项目 建立maven项目,加入Jmeter所需要的JAR包依赖. POM.xml 加入如下: <dependency> <groupId>org.apache.j ...
- Jmeter实现dubbo接口压测案例
当前项目中重构了消息服务,需要对消息服务接口做性能压测,评估消息服务的性能情况 通过和开发对接,目前消息服务是通过dubbo接口对内提供服务,所以才有了这边文章的记录 最初的压测这个dubbo接口有三 ...
- dubbo接口demo开发
接口需求 客户端输入uncleyong(当然,也可以输入其它字符串),服务端返回hello uncleyong 开发环境 jdk + idea + maven + zookeeper jdk安装 id ...
- jmeter5.1测试dubbo接口
dubbo接口功能介绍 客户端输入uncleyong(当然,也可以是其他字符串),服务端返回hello uncleyong 开发dubbo服务jmeter客户端 idea中创建模块dubbo_jmet ...
- java反射调用dubbo接口
需求:项目增加幂等 场景:1.三个项目:a .b.c2.a项目加幂等3.b项目dubbo调用项目a的时候超时没有获取返回结果,增加重试机制(非立即重试,3min or 5min 后重试)4.c项目是一 ...
- jmeter4.0测试dubbo接口遇到的问题:An error occurred: org.springframework.scheduling.quartz.CronTriggerBean has interface org.quartz.CronTrigger as super class
半年前,用jmeter4.0测试dubbo接口的时候,遇到这样一个问题 An error occurred: org.springframework.scheduling.quartz.CronTri ...
- Dubbo接口压测
在每年的双十一大促之前,除了全链路压测,还需要各个业务方对自己业务提供的核心接口进行单接口压测,以评判系统的稳定性和承压能力. 一.准备工作 环境准备:确保应用性能环境(perf)正常可用 压测接口梳 ...
- 【Dubbo&&Zookeeper】6、 给dubbo接口添加白名单——dubbo Filter的使用
在开发中,有时候需要限制访问的权限,白名单就是一种方法.对于Java Web应用,Spring的拦截器可以拦截Web接口的调用:而对于dubbo接口,Spring的拦截器就不管用了. dubbo提供了 ...
- 给dubbo接口添加白名单——dubbo Filter的使用
本文转自:http://blog.csdn.net/mj158518/article/details/47379799 在开发中,有时候需要限制访问的权限,白名单就是一种方法.对于Java Web应用 ...
随机推荐
- 001-http协议-请求报文以及服务器响应状态
Http协议的几个概念: 1.连接(Connection):浏览器和服务器之间传输数据的通道. 一般请求完毕就关闭,http不保持连接.不保持连接会降低处理速度(因为建立连接速度很慢),保持连接的话就 ...
- Bukkit插件编程中.yml配置文件的创建和读取
package com.sklm.config; import java.io.BufferedOutputStream; import java.io.BufferedReader; import ...
- IIS 8.0 Using ASP.NET 3.5 and ASP.NET 4.5微软官方安装指导
from:https://www.iis.net/learn/get-started/whats-new-in-iis-8/iis-80-using-aspnet-35-and-aspnet-45 S ...
- 总结我在huawei matebook D 2018版中安装archlinux的过程
1.首先当然是准备一个启动U盘.按理说UEFI启动方式,只要将ISO镜像中的文件copy到U盘根目录即可,可以实际用的时候虽然能启动,但是进入live的时候会有些问题,所以老老实实用UltraISO ...
- JQuery基本知识(3)
JQuery基本知识(3) 一.JQuery拥有可操作HTML元素和属性的强大方法. 1.JQuery DOM操作(DOM文档对象模型) 获取内容的方法: text():设置或返回所选元素的文本内容 ...
- Codeforces Round #319 (Div. 2) D
E A tree of size n is an undirected connected graph consisting of n vertices without cycles. Conside ...
- C# SQLite 数据库操作
C# SQLite 数据库操作学习 运行环境:Window7 64bit,.NetFramework4.61,C# 7.0 参考: SQLite 官网 SQL As Understood By SQL ...
- eclipse maven install没反应解决办法
.打开eclipse的Window菜单-->java-->Installed JREs .点击用的jdk,edit,在Default VM arguments里面填入-Dmaven.mul ...
- Java基础语法(一 )
一.关键字 关键字概述 被Java语言赋予特定含义的单词 关键字特点 组成关键字的字母全部小写 关键字注意事项 goto和const作为保留字存在,目前并不使用 关键字单词 用于定义数据类型的关键字 ...
- arm cortex-m0plus源码学习(二)AMBA3.0_ AHBLite
1. AMBA总线概述 AMBA2.0 以上版本都是基于单沿时钟.单向信号线的协议[1]. 现在市场上大部分的基于 AMBA 架构的 SoC 产品, 系统总线采用 AHB, 外部总线采用 APB.系统 ...