jmeter+dubbo接口開發
一、在本身安裝的Linux機器上面安裝zookeeper服務
若是沒有wget命令,使用yum進行下載:( yum install wget* -y)
2)tar -zxvf文件名
tar -zxvf zookeeper-3.4.14.tar.gz
3)在zookeeper的主路徑下新建下面兩個文件名
mkdir {logs,data},這個命令一會兒建立兩個文件夾
4)進入到conf目錄下,修改zookeeper配置文件(備份一個,防止設置錯誤,沒法恢復)
備份文件命令: cp zoo_sample.cfg zoo.cfg
修改配置文件zoo.cfg:vim zoo.cfg
在配置文件的tickTime=2000行下添加一下內容:
dataDir=/root/data/zookeeper-3.4.14/data
dataLogDir=/root/data/zookeeper-3.4.14/logs
配置集羣方式,這須要寫多個,ip值就是對應的主機ip,由於是不一樣的主機因此端口號能夠徹底同樣,如圖
在以前設置的dataDir中新建myid文件, 寫入一個數字, 該數字表示這是第幾號server. 該數字必須和zoo.cfg文件中的server.X中的X一一對應.
5)在配置文件vim /etc/profile中添加下面兩句
#zookeeper
export ZK_HOME=/data/zookeeper-3.4.14
export PATH=………………:$PATH:$ZK_HOME/bin(path前面路徑不要動,添加上後面部分便可)
使用source /etc/profile實時更新修改的配置文件
6)啓動
切換到bin目錄下啓動:./zkServer.sh start
查看是否啓動成功: zkServer.sh status
鏈接 (-Initiating client) :鏈接本機能夠直接使用 zkCli.sh
鏈接其餘地址,使用: zkCli.sh -server ip:2181(2181爲默認端口)
而後使用ls /:前提條件:添加環境變量
配置文件說明:
一、myid文件和server.myid 在快照目錄下存放的標識本臺服務器的文件,他是整個zk集羣用來發現彼此的一個重要標識;
二、zoo.cfg 文件是zookeeper配置文件 在conf目錄裏;
三、log4j.properties文件是zk的日誌輸出文件 在conf目錄裏用java寫的程序基本上有個共同點日誌都用log4j,來進行管理;
二、在idea工具裏面完成dubbo消費提供者和消費者模塊
1)建立一個發送接口文件SmsService,文件內容以下:
package com.pertest.server;
public interface SmsService {
/*
* 定義一個發短信的接口
* @param content 內容
* @param platform平臺,分別對應LIANTONG,YIDONG,DIANXIN
* @return 正常返回發送成功,失敗便可,這裏爲了展現發送的手機號和內容平臺,直接把內容再返回去
*/
String sendSms(String mobile, String content, String platform);
}
2)建立SmsServiceImpl文件,該文件模擬是發送信息,文件內容爲:
package com.pertest.server.impl;
import com.pertest.server.SmsService;
import org.springframework.stereotype.Service;
@Service
@Component
public class SmsServiceImpl implements SmsService {
public String sendSms(String mobile, String content, String platform) {
try{
Thread.sleep(2000); // 模擬調用短信接口耗時2s
return String.format("發送結果:%s, 手機號碼:%s, 內容:%s, 平臺:%s", "SUCCESS", mobile,content,platform);
}
catch (InterruptedException e) {
e.printStackTrace();
}
return null;
}
}
3)編輯pom.xml文件,須要將用到的其餘依賴包都添加進來
4)在resources下添加日誌文件log4j.xml,文件中包含了日誌文件的格式
5)在resources下添加日誌文件applicationProvider.xml,文件中包含註冊地址,註冊地址(zookeeper所在的地址),用dubbo協議在28080端口暴露服務,接口的位置,實現bean(對應第二步驟)
6)在建立包com.pertest.main,下建立調用java文件MyMainPertest,文件內容以下:
package com.pertest.main;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class MyMainPertest {
public static void main(String[] args) throws Exception {
ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext(
new String[] {"applicationProvider.xml"});
context.start();
System.out.println("按任意鍵退出");
System.in.read();
}}
7)編譯,進行調試
8)打Maven包
view--Tool windows----Maven--install---綠色運行鍵
消費端:
1)將一些依賴包添加進來,包括消費提供端的剛剛打的Maven包
<dependency>
<groupId>com.pertest</groupId>
<artifactId>dubbo_provider</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
2)在resources下添加日誌文件log4j2.xml,文件中包含了日誌文件的格式
3)在resources下添加日誌文件customer.xml,文件中包含調用的信息
4)在建立包com.pertest.main,下建立調用java文件ConsumerApplicationTests這個類名會在jmeter中用到:
1.寫一個測試方法,GetStringTest隨便取名字
public static String GetStringTest(String mobile, String content, String platform){
ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("classpath:customer.xml");寫一個//步驟3對應的文件目錄
context.start();
SmsService smsService = (SmsService) context.getBean("demoService");
String s = smsService.sendSms(mobile, content, platform);//消息發送端中編寫的那個接口
return s;
}
2.//主函數進行調用
public static void main(String[] args) {
String mobile = "18262988703";
String content = "pertest";//內容
String platform = "test";//平臺
String result = GetStringTest(mobile,content,platform); // 調用java接口
System.out.println("+++++++++"+result);
}
3.//jmeter每次執行的內容部分
public SampleResult runTest(JavaSamplerContext args0) {
//setValues(args);
SampleResult sr = new SampleResult();
sr.setSampleLabel("JmeterDubboTest");//在jmeter結果樹查看顯示的內容
sr.sampleStart(); //事務開始,開始計算時間
try {
String result = GetStringTest(mobile,content,platform); // 調用java接口
sr.setResponseData("From dubbo provider:"+result,null); //輸入方法結果
sr.setDataType(SampleResult.TEXT); //輸入結果保存內容
System.out.println(result); //在jmeter的控制檯終端顯示
sr.setSuccessful(true); //設置測試結果true
}
catch (Throwable e) {
sr.setSuccessful(false); //設置測試結果false
e.printStackTrace();//失敗進行捕獲跟蹤
}
finally {
sr.sampleEnd(); // 事務結束,計算時間
}
return sr;
}
4.最後打包:view--Tool windows----Maven--install---綠色運行鍵
5.若是未制定打包文件的位置,則在src同級的target目錄下面
在Maven找包方法:
2)直接複製該信息,並粘貼在pom.xml裏面就能夠啦
三、修改爲jmeter的參數化腳本,並在jmeter裏面完成調用