---隨便在網上一搜一大把
專注于為中小企業(yè)提供成都網站制作、網站設計服務,電腦端+手機端+微信端的三站合一,更高效的管理,為中小企業(yè)峨眉山免費做網站提供優(yōu)質的服務。我們立足成都,凝聚了一批互聯網行業(yè)人才,有力地推動了上千多家企業(yè)的穩(wěn)健成長,幫助中小企業(yè)通過網站建設實現規(guī)模擴充和轉變。
import java.io.IOException;
import java.io.InputStream;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLConnection;
public class URLAccess {
public static void main(String[] args) {
try {
test();
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
public static void test() throws IOException {
URL url = new URL("");
System.out.println("==================以下為網站內容==================");
URLConnection urlcon = url.openConnection();
int i = urlcon.getContentLength();
if (i 0) {
InputStream is = urlcon.getInputStream();
int a;
while ((a = is.read()) != -1) {
System.out.print((char) a);
}
is.close();
} else {
System.out.println("響應內容為空...");
}
}
}
Java編程下用JMeter Java Sampler進行多接口性能測試,使用方法如下:
/**?
*JMeter?Java?Sampler介紹
*setupTest做些初始化的工作,每個線程只執(zhí)行一次
*teardownTest做些清理工作,每個線程只執(zhí)行一次
*runTest具體的測試執(zhí)行工作,每個并發(fā)每次循環(huán)都將執(zhí)行一次
**/
//繼承AbstractJavaSamplerClient
public?class?hessianTest?extends?AbstractJavaSamplerClient{
//hessian調用地址
private?static?String?url?=?"";
MyService?collect?=?null;
HessianProxyFactory?factory?=?new?HessianProxyFactory();
public?int?id;
@Override
public?void?setupTest(JavaSamplerContext?arg0)?{
//獲取jmeter傳入參數
id=arg0.getIntParameter("id");
try?{
collect?=?(MyService)?factory.create(
MyService.class,?url);
}?catch?(MalformedURLException?e)?{
e.printStackTrace();
}
}
@Override
public?SampleResult?runTest(JavaSamplerContext?arg0)?{
SampleResult?sp?=?new?SampleResult();
sp.sampleStart();
User?rt?=?null;
try?{
rt?=?collect.getUser(id);
}?catch?(Exception?e)?{
sp.sampleEnd();
sp.setSuccessful(false);
return?sp;
}
sp.sampleEnd();
if(rt.getId()==id)
sp.setSuccessful(true);
else
sp.setSuccessful(false);
return?sp;
}
@Override
public?void?teardownTest(JavaSamplerContext?context)?{
super.teardownTest(context);
}
}
我們在做性能測試時,有時需要自己編寫測試腳本,很多測試工具都支持自定義編寫測試腳本,比如LoadRunner就有很多自定義腳本的協議,比如"C?Vuser","Java?Vuser"等協議.同樣,Jmeter也支持自定義編寫的測試代碼,不過與LoadRunner不同的是,Jmeter沒有自帶編譯器,需要借助第三方編譯器才能實現.下面舉一個簡單的Java自定義測試代碼例子,使用Java編譯器編寫測試代碼(Java編譯器可以用Eclipse,JBulider等),實現功能為:在測試前輸入任意一個字符串,然后判斷該字符串的長度是否大于5,如果大于則測試結果成功,否則測試結果位失敗,然后在放到Jmeter中模擬10個用戶測試,同時運行這段代碼,具體實現如下:
1.打開Java編譯器,新建一個項目"TestLength",然后新建一個包"app".
2.從Jmeter的安裝目錄lib/ext中拷貝兩個文件"ApacheJMeter_core.jar"和"ApacheJMeter_java.jar"到"Tester"的項目中,然后引入這兩個JAR文件.(具體的引入方法參考各個Java編譯器的使用方法)
3.在"app"包中新建一個類,名字叫"TestLength",不過這個類要繼承"AbstractJavaSamplerClient"類,如果項目引入步驟二中的兩個文件,就可以找到"AbstractJavaSamplerClient"類了.
4."TestLength"類在繼承"AbstractJavaSamplerClient"類的同時也會繼承四個方法,分別是"getDefaultParameters","setupTest","runTest"和"teardownTest"方法."getDefaultParameters"方法主要用于設置傳入的參數;"setupTest"方法為初始化方法,用于初始化性能測試時的每個線程."runTest"方法為性能測試時的線程運行體;"teardownTest"方法為測試結束方法,用于結束性能測試中的每個線程.
5.具體實現代碼如下:
package?app;
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?com.passpod.core.t8.*;
/**
*?@author樂以忘憂
*
*?TODO?To?change?the?template?for?this?generated?type?comment?go?to
*?Window?-?Preferences?-?Java?-?Code?Style?-?Code?Templates
*/
public?class?TestLength?extends?AbstractJavaSamplerClient{
private?SampleResult?results;
private?String?testStr;
//初始化方法,實際運行時每個線程僅執(zhí)行一次,在測試方法運行前執(zhí)行,類似于LoadRunner中的init方法
public?void?setupTest(JavaSamplerContext?arg0)?{
results?=?new?SampleResult();
testStr?=?arg0.getParameter("testString",?"");
if?(testStr?!=?null??testStr.length()??0)?{
results.setSamplerData(testStr);
}
}
//設置傳入的參數,可以設置多個,已設置的參數會顯示到Jmeter的參數列表中
public?Arguments?getDefaultParameters()?{
Arguments?params?=?new?Arguments();
params.addArgument("testStr",?"");???//定義一個參數,顯示到Jmeter的參數列表中,第一個參數為參數默認的顯示名稱,第二個參數為默認值
return?params;
}
//測試執(zhí)行的循環(huán)體,根據線程數和循環(huán)次數的不同可執(zhí)行多次,類似于LoadRunner中的Action方法
public?SampleResult?runTest(JavaSamplerContext?arg0)?{
int?len?=?0;
results.sampleStart();?????//定義一個事務,表示這是事務的起始點,類似于LoadRunner的lr.start_transaction
len?=?testStr.length();
results.sampleEnd();?????//定義一個事務,表示這是事務的結束點,類似于LoadRunner的lr.end_transaction
if(len??5){
System.out.println(testStr);
results.setSuccessful(false);???//用于設置運行結果的成功或失敗,如果是"false"則表示結果失敗,否則則表示成功
}else???
results.setSuccessful(true);
return?results;
}
//結束方法,實際運行時每個線程僅執(zhí)行一次,在測試方法運行結束后執(zhí)行,類似于LoadRunner中的end方法
public?void?teardownTest(JavaSamplerContext?arg0)?{
}
}
6.把上面的例子打包,然后把生成的"TestLength.jar"文件拷貝到Jmeter的安裝目錄lib/ext下.
7.運行Jmeter,添加一個線程組,然后在該線程組下面添加一個Java請求(在Sampler中),在Java請求的類名稱中選擇咱們剛創(chuàng)建的類"app.TestLength",在下面參數列表的"testStr"后面輸入要測試的字符串,然后添加一個監(jiān)聽器(聚合報告),設置一下模擬的用戶數就可以測試了.如果測試不成功,Jmeter會在它自己個輸出框中拋出這個字符串.
通過上面的例子我們可以發(fā)現,使用Jmeter自定義Java測試代碼,配合Jmeter自帶的函數,就可以實現出LoadRunner中"Java?Vuser"協議的絕大多數功能,而且是沒有用戶數限制和完全免費的(嘿嘿).上面的例子非常簡單,而且沒有任何實際意義,只是一個簡單的Jmeter測試代碼示例,用于拋磚引玉,希望大家一起交流,共同?進步.