package com.lakala.crosspay.jmeter.client.integration;

import com.lakala.crosspay.sms.api.SmsService;
import com.lakala.crosspay.sms.api.dto.SmsDTO;
import com.lakala.sh.framework.core.error.Result;
import com.lakala.sh.framework.core.utils.DateUtil;
import org.apache.commons.lang3.RandomStringUtils;
import org.apache.jmeter.protocol.java.sampler.AbstractJavaSamplerClient;
import org.apache.jmeter.protocol.java.sampler.JavaSamplerContext;
import org.apache.jmeter.samplers.SampleResult; import org.apache.jmeter.config.Arguments; import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext; import java.util.Date; /**
* SmsServiceSampleClient
*
* @author makarov
* @desc
* @date 2018/8/24
*/
public class SmsServiceSampleClient extends AbstractJavaSamplerClient { private ApplicationContext applicationContext; private long startTimestamp; private long endTimestamp; @Override public Arguments getDefaultParameters() {
Arguments args = new Arguments();
args.addArgument("Sid", "");
args.addArgument("mobile","");
args.addArgument("templateNo",""); return args;
}
public void setupTest(JavaSamplerContext context) {
applicationContext = new ClassPathXmlApplicationContext("classpath:remote-consumer.xml");
} public SampleResult runTest(JavaSamplerContext javaSamplerContext) {
SmsService smsService = (SmsService) applicationContext.getBean("smsService");
getNewLogger().info("smsService:{}", smsService);
SampleResult sampleResult = new SampleResult();
sampleResult.sampleStart();
try {
startTimestamp = System.currentTimeMillis();
SmsDTO smsDTO = new SmsDTO();
smsDTO.setSid(RandomStringUtils.randomAlphanumeric(32));
smsDTO.setMessage("{\"BATCH_NO\":\"" + DateUtil.format(new Date(), "yyyyMMdd") + RandomStringUtils.randomNumeric(6) + "\",\"CUSTOMER_NO\":\"CUST00000001\"}");
smsDTO.setMobile("18516235811");
smsDTO.setTemplateNo("481869683453067264");
smsDTO.setType("01");
Result<SmsDTO> result = smsService.sendSms(smsDTO);
if (result.isSuccess()) {
sampleResult.setSuccessful(true);
} else {
sampleResult.setSuccessful(false);
}
} catch (Exception e) {
sampleResult.setSuccessful(false);
getNewLogger().error("调用服务接口异常:", e);
}
sampleResult.sampleEnd(); return sampleResult;
} @Override
public void teardownTest(JavaSamplerContext context) {
endTimestamp = System.currentTimeMillis();
getNewLogger().info("调用接口耗时:{}ms", endTimestamp - startTimestamp);
}
}

smsService接口(dubbo接口)的更多相关文章

  1. jmeter测试dubbo接口

    本文讲解jmeter测试dubbo接口的实现方式,文章以一个dubbo的接口为例子进行讲解,该dubbo接口实现的功能为: 一:首先我们看服务端代码 代码架构为: 1:新建一个maven工程,pom文 ...

  2. 利用jmeter+JAVA对RPC的单接口(dubbo接口等)进行性能测试

    建立JAVA项目 建立maven项目,加入Jmeter所需要的JAR包依赖. POM.xml  加入如下: <dependency> <groupId>org.apache.j ...

  3. Jmeter实现dubbo接口压测案例

    当前项目中重构了消息服务,需要对消息服务接口做性能压测,评估消息服务的性能情况 通过和开发对接,目前消息服务是通过dubbo接口对内提供服务,所以才有了这边文章的记录 最初的压测这个dubbo接口有三 ...

  4. dubbo接口demo开发

    接口需求 客户端输入uncleyong(当然,也可以输入其它字符串),服务端返回hello uncleyong 开发环境 jdk + idea + maven + zookeeper jdk安装 id ...

  5. jmeter5.1测试dubbo接口

    dubbo接口功能介绍 客户端输入uncleyong(当然,也可以是其他字符串),服务端返回hello uncleyong 开发dubbo服务jmeter客户端 idea中创建模块dubbo_jmet ...

  6. java反射调用dubbo接口

    需求:项目增加幂等 场景:1.三个项目:a .b.c2.a项目加幂等3.b项目dubbo调用项目a的时候超时没有获取返回结果,增加重试机制(非立即重试,3min or 5min 后重试)4.c项目是一 ...

  7. 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 ...

  8. Dubbo接口压测

    在每年的双十一大促之前,除了全链路压测,还需要各个业务方对自己业务提供的核心接口进行单接口压测,以评判系统的稳定性和承压能力. 一.准备工作 环境准备:确保应用性能环境(perf)正常可用 压测接口梳 ...

  9. 【Dubbo&&Zookeeper】6、 给dubbo接口添加白名单——dubbo Filter的使用

    在开发中,有时候需要限制访问的权限,白名单就是一种方法.对于Java Web应用,Spring的拦截器可以拦截Web接口的调用:而对于dubbo接口,Spring的拦截器就不管用了. dubbo提供了 ...

  10. 给dubbo接口添加白名单——dubbo Filter的使用

    本文转自:http://blog.csdn.net/mj158518/article/details/47379799 在开发中,有时候需要限制访问的权限,白名单就是一种方法.对于Java Web应用 ...

随机推荐

  1. React项目中使用Mobx状态管理(二)

    并上一节使用的是普通的数据状态管理,不过官方推荐使用装饰器模式,而在默认的react项目中是不支持装饰器的,需要手动启用. 官方参考 一.添加配置 官方提供了四种方法, 方法一.使用TypeScrip ...

  2. 在caffe-ssd的环境搭建中遇到报错信息:Makefile:588: recipe for target '.build_release/cuda/src/caffe/layers/softmax_loss_layer.o' failed

    错误原因: 1.计算机没有安装GPU 2.有GPU但是NVCCFLAGS设置错误 解决方法: 1.对没有GPU的计算机,需要将Makefile中的CPU之前的#注释去掉,是的caffe运行的处理器进行 ...

  3. c#Stream学习笔记

    C# 温故而知新:Stream篇(—) http://www.cnblogs.com/JimmyZheng/archive/2012/03/17/2402814.html 基本概念重点看这一篇. 什么 ...

  4. ECC

    素数 prime,又称为质数,是指,除了1和它本身,没有其他因数的数. 素数的定理: 1)在一个大于1的数a和它的2倍之间必定存在至少一个素数: 素数的性质: 1)在所有的大于10的质数中,个位数,只 ...

  5. awk命令学习(1)

    awk是一个强大的文本分析工具,相对于grep的查找,sed的编辑,awk在其对数据分析并生成报告时,显得尤为强大.简单来说awk就是把文件逐行的读入,以空格为默认分隔符将每行切片,切开的部分再进行各 ...

  6. Sitecore CMS中更改项目的模板

    如何在Sitecore CMS中创建项目后更改项目的模板. 在创建项目时选择了错误的模板,或者创建了新模板并将现有项目更新为新模板时,这非常有用.   警告! 更改模板时要小心.如果原始模板具有不在新 ...

  7. 导入javax.servlet。伺服登记无法解决:The import javax.servlet.MultipartConfigElement cannot be resolved

    解决办法:

  8. Second LearningConvolutionalNeuralNetworksforGraphs Experience

    paper +ppt 链接:https://pan.baidu.com/s/1ZLBvv7mP8OoseQ4tnwhr_A 提取码:4amg

  9. python pprint

    使用 pprint 模块 pprint 模块( pretty printer ) 用于打印 Python 数据结构. 当你在命令行下打印特定数据结构时你会发现它很有用(输出格式比较整齐, 便于阅读). ...

  10. flask 数据库操作(增删改查)

    数据库操作 现在我们创建了模型,生成了数据库和表,下面来学习常用的数据库操作,数据库操作主要是CRUD,即Create(创建).Read(读取/查询).Update(更新)和Delete(删除). S ...