bl双性强迫侵犯h_国产在线观看人成激情视频_蜜芽188_被诱拐的少孩全彩啪啪漫画

java代碼添加請求體,JAVA中post如何添加請求體

jmeter用java代碼怎樣編寫接口測試源碼

我們在做性能測試時,有時需要自己編寫測試腳本,很多測試工具都支持自定義編寫測試腳本,比如LoadRunner就有很多自定義腳本的協議,比如"C Vuser","Java Vuser"等協議.同樣,Jmeter也支持自定義編寫的測試代碼,不過與LoadRunner不同的是,Jmeter沒有自帶編譯器,需要借助第三方編譯器才能實現.下面舉一個簡單的Java自定義測試代碼例子,使用Java編譯器編寫測試代碼(Java編譯器可以用Eclipse,JBulider等),實現功能為:在測試前輸入任意一個字符串,然后判斷該字符串的長度是否大于5,如果大于則測試結果成功,否則測試結果位失敗,然后在放到Jmeter中模擬10個用戶測試,同時運行這段代碼,具體實現如下:

創新互聯建站成立以來不斷整合自身及行業資源、不斷突破觀念以使企業策略得到完善和成熟,建立了一套“以技術為基點,以客戶需求中心、市場為導向”的快速反應體系。對公司的主營項目,如中高端企業網站企劃 / 設計、行業 / 企業門戶設計推廣、行業門戶平臺運營、成都app軟件開發、手機網站開發、微信網站制作、軟件開發、西部信息中心等實行標準化操作,讓客戶可以直觀的預知到從創新互聯建站可以獲得的服務效果。

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;

//初始化方法,實際運行時每個線程僅執行一次,在測試方法運行前執行,類似于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;

}

//測試執行的循環體,根據線程數和循環次數的不同可執行多次,類似于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;

}

//結束方法,實際運行時每個線程僅執行一次,在測試方法運行結束后執行,類似于LoadRunner中的end方法

public void teardownTest(JavaSamplerContext arg0) {

}

}

6.把上面的例子打包,然后把生成的"TestLength.jar"文件拷貝到Jmeter的安裝目錄lib/ext下.

7.運行Jmeter,添加一個線程組,然后在該線程組下面添加一個Java請求(在Sampler中),在Java請求的類名稱中選擇咱們剛創建的類"app.TestLength",在下面參數列表的"testStr"后面輸入要測試的字符串,然后添加一個監聽器(聚合報告),設置一下模擬的用戶數就可以測試了.如果測試不成功,Jmeter會在它自己個輸出框中拋出這個字符串.

通過上面的例子我們可以發現,使用Jmeter自定義Java測試代碼,配合Jmeter自帶的函數,就可以實現出LoadRunner中"Java Vuser"協議的絕大多數功能,而且是沒有用戶數限制和完全免費的(嘿嘿).上面的例子非常簡單,而且沒有任何實際意義,只是一個簡單的Jmeter測試代碼示例,用于拋磚引玉,希望大家一起交流,共同 進步.

如何在java代碼中執行jsonp請求

首先你要知道jsonp工作原理,實質上也就是利用了一些旁門左道(瀏覽器對資源文件無限制的特點)來進行的跨域訪問,能共用的技術是http,所以在java里可以使用httpclient工具來發送http請求,并把請求做成jsonp的請求模樣就行了。

高分:求案例代碼:java Socket 加請求參數,訪問http服務端,并打印返回的數據!

import java.awt.*;

import javax.swing.*;

import java.awt.event.*;

import java.net.*;

import java.io.*;

public class Client extends JFrame

{

/**

*

*/

private static final long serialVersionUID = -4733717749265129757L;

Container con=null;

JTextArea jta = null;

JTextField jtf = null;

//ArrayList al = new ArrayList();

//ServerSocket ss = null;

Socket s = null;

Client(String ip,int port)

{

try

{

s = new Socket(ip,port); //創建一個流套接字并將其連接到指定 IP 地址的指定端口號。

launchFrame();

}

catch(Exception e)

{

e.printStackTrace();

}

new Thread(new ClientR()).start();

}

public void sent(String str)

{ //發送消息方法

try

{

DataOutputStream dos = new DataOutputStream(s.getOutputStream()); // 創建一個新的數據輸出流,將數據寫入指定 返回s的套接字的輸出流。

dos.writeUTF(str);

}

catch(Exception e)

{

e.printStackTrace();

}

}

public void disconnect() throws Exception

{

s.close(); //失去連接,關閉線程s

}

class ClientR implements Runnable

{//客戶端運行

/*Runnable 接口應該由那些打算通過某一線程執行其實例的類來實現。類必須定義一個稱為 run 的無參數方法。

設計該接口的目的是為希望在活動時執行代碼的對象提供一個公共協議。例如,Thread 類實現了 Runnable。

激活的意思是說某個線程已啟動并且尚未停止。

此外,Runnable 為非 Thread 子類的類提供了一種激活方式。

通過實例化某個 Thread 實例并將自身作為運行目標,就可以運行實現 Runnable 的類而無需創建 Thread 的子類。

大多數情況下,如果只想重寫 run() 方法,而不重寫其他 Thread 方法,那么應使用 Runnable 接口。這很重要,

因為除非程序員打算修改或增強類的基本行為,否則不應為該類創建子類。

*/

public void run()

{

try

{

DataInputStream dis = new DataInputStream(s.getInputStream());//使用指定的底層 s.getInputStream(s的套接字的輸入流) 創建一個 DataInputStream(數據輸入流)

String str = dis.readUTF();

while(true)

{

jta.append(str+"\n");

str = dis.readUTF();

}

}

catch(Exception e)

{

e.printStackTrace();

}

}

}

public void startClient()

{ //客戶端啟用

try

{

BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); //讀取數據流

String str = br.readLine();

System.out.println(str);

while(true)

{

sent(str); //發送數據

if(str.equals("q"))

{ //如果讀取的字符為q

disconnect(); //斷開連接

return ;

}

str=br.readLine();

}

}

catch(Exception e)

{

e.printStackTrace();

}

}

public void launchFrame() throws IOException

{ //客戶端面板布局

con = this.getContentPane();

jta = new JTextArea();

jtf = new JTextField();

final JTextField jtf1=new JTextField(10);

final JButton jb=new JButton("確認");

Panel p=new Panel();

//Panel p1=new Panel();

JLabel jl=new JLabel();

jl.setText("your name:");

//jl.getVerticalTextPosition();

jtf1.setBackground(Color.PINK);

jtf1.setBounds(10, 10, 10, 10);

p.add(jl);

p.add(jtf1);

p.add(jb);

jb.addActionListener(new ActionListener()

{

public void actionPerformed(ActionEvent e)

{

//e.getWhen();

e.getActionCommand();

jtf.setText(jtf1.getText().toString()+"say:");

}

});

jta.setBackground(Color.LIGHT_GRAY);

jta.setEditable(false); //不可編輯文本域

JScrollPane jsp = new JScrollPane(jta, //jta上滾動條的創建

JScrollPane.VERTICAL_SCROLLBAR_ALWAYS,

JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);

//con.add(jb,BorderLayout.WEST);

con.add(jsp,BorderLayout.CENTER);

con.add(p,BorderLayout.NORTH);

con.add(jtf,BorderLayout.SOUTH);

jtf.addActionListener(new ActionListener()

{ ///事件監聽

public void actionPerformed(ActionEvent e)

{

String str = jtf.getText().toString();

Client.this.sent(str);

jtf.setText(jtf1.getText().toString()+"say:");

}

});

this.setTitle("聊天客戶端,襲風版");

this.setBounds(200,200,300,400);

this.setDefaultCloseOperation(EXIT_ON_CLOSE);

this.setBackground(Color.blue);

this.setVisible(true);

}

public static void main (String[] args)

{

System.out.println("===1");

Client cli = new Client("127.168.1.1",3456); //創建一個客戶端,并將其連接到指定 IP 地址的指定端口號,其端口號與服務器端一致。與服務器建立連接

System.out.println("===2");

cli.startClient(); //127.0.0.1為本機端口

}

}

//

//import java.net.*;

//import java.io.*;

//

///*

// 發送給服務器端

//*/

//class Send implements Runnable

//{

// private Socket socket;

// Send(Socket socket)

// {

// this.socket = socket;

// }

// public void run()

// {

// try

// {

// BufferedReader bufr =

// new BufferedReader(new InputStreamReader(System.in));

//

// String line = null;

// while((line=bufr.readLine())!=null)

// {

// if("886".equals(line))

// {

// socket.close();

// break;

// }

// byte[] bufString = line.getBytes();

//

// //通過socket對象獲取socket流中的輸出流對象。

// OutputStream out = socket.getOutputStream();

// out.write(bufString);

//

// InputStream in = socket.getInputStream();

// byte[] buf = new byte[1024];

// int num = in.read(buf);

// String str = new String(buf,0,num);

//

// System.out.println("server:"+str);

// }

//

//

// }

// catch (Exception e)

// {

// System.out.println(e.toString());

// }

// }

//}

//

///*

// 建立服務器

//*/

//class Rece implements Runnable

//{

// //1,建立服務端的socket服務。并監聽一個端口。以獲取客戶端發來的數據。

// private ServerSocket serverSocket;

// Rece(ServerSocket serverSocket)

// {

// this.serverSocket = serverSocket;

// }

// public void run()

// {

// try

// {

// while(true){

// System.out.println("============4");

// Socket socket = serverSocket.accept();

// System.out.println("============5");

// String ip = socket.getInetAddress().getHostAddress();

// System.out.println("============6");

// System.out.println(ip+"...connected");

// System.out.println("============7");

// BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream()));

// System.out.println("============8");

// String line ="";

// System.out.println("============9");

//

// OutputStream out = socket.getOutputStream();

// out.write("開始".getBytes());

//

// while((line= in.readLine())!=null){

// System.out.println(line);

// }

//

// }

// }

// catch (Exception e)

// {

// System.out.println(e.toString());

// }

// }

//}

//

//

//class ChatDemoServer

//{

// public static void main(String[] args) throws Exception

// {

// //1,建立服務端的socket服務。并監聽一個端口。以獲取客戶端發來的數據。

// System.out.println("========1");

// ServerSocket rece = new ServerSocket(8082);

// rece.close();

// System.out.println("========2");

// new Thread(new Rece(rece)).start();

// System.out.println("========3");

// }

//}

//

//

//class ChatClient

//{

// public static void main(String[] args) throws Exception

// {

// //1,建立服務端的socket服務。并監聽一個端口。以獲取客戶端發來的數據。

// //建立客戶端socket服務。并去連接指定的服務端。

// Socket send = new Socket("169.254.1.60",10086);

// if(send == null){

// System.out.println("【創建Socket失敗!】");

// return;

// }

// new Thread(new Send(send)).start();

// }

//}

import java.net.*;

import java.io.*;

import java.util.*;

//import java.awt.event.*;

import javax.swing.*;

import java.awt.*;

public class Server extends JFrame

{

/**

* 套接字接口可分為三類:公認端口 注冊端口 動態和/或私有端口

套接字,簡單的說就是通信的兩方的一種約定,用套接字中的相關函數來完成通信過程

*/

private static final long serialVersionUID = 4130666237241201704L;

Container con = null; //容器

JTextArea jta = null; //文本區

ServerSocket ss = null; //初始化服務器套接字

ArrayList al = new ArrayList();//ArrayList容器

Server(int port)

{ //構造函數

try

{

ss=new ServerSocket(port); // 創建綁定到特定端口的服務器套接字。

}

catch(Exception e)

{

e.printStackTrace();

}

launchFrame();

}

public void severStart()

{ //線程開始

while(true)

{

try{

Socket s = ss.accept(); //偵聽并接受到此套接字(port)的連接。

al.add(new ServerR(s));

jta.append("New Client:"+"\n Ip: "+s.getInetAddress()+":"+s.getPort()+"\n" //得到客戶端本地地址,端口和客戶端數量

+"Clients count:"+al.size()+"\n");

}

catch(Exception e)

{

e.printStackTrace();

}

}

}

class ServerR implements Runnable

{

Socket s = null; //創建新服務線程

ServerR(Socket s)

{

this.s = s;

new Thread(this).start();//啟動新線程

}

public void sent(String str)

{ //發送數據流方法

try

{

DataOutputStream dos = new DataOutputStream(s.getOutputStream()); //從s套接字中讀出輸出數據流

dos.writeUTF(str); //使用 UTF-8 修改版編碼將一個字符串寫入基礎輸出流。

}

catch(Exception e)

{

e.printStackTrace();

}

}

public void run()

{

try

{

DataInputStream dis = new DataInputStream(s.getInputStream());

String str = dis.readUTF(); //讀出輸入的數據流

while(true)

{

// System.out.println (str);

Iterator ite = al.iterator(); //生成list迭代器

while(ite.hasNext())

{ //如果仍有可迭代的元素,返回true

((ServerR)ite.next()).sent(str); //返回(ServerR)的下一個元素,并發送它

//先遍歷ServerR中的所有線程

}

str=dis.readUTF();

}

}

catch(Exception e)

{

try{ //客戶端關閉捕捉

s.close(); //關閉一個相關客戶端線程

al.remove(this); //從迭代器指向的集合中移除迭代器返回的最后一個元素

jta.append("A client quit!\nClients count:"+al.size()+"\n"); //統計客戶端現有的數量

}

catch(Exception e2)

{

e2.printStackTrace();

}

e.printStackTrace();

}

}

}

public void launchFrame()

{ //服務器端面板布局

con = this.getContentPane();

jta = new JTextArea();

jta.setEditable(false); //不可編輯文本域

JScrollPane jsp = new JScrollPane(jta,

JScrollPane.VERTICAL_SCROLLBAR_ALWAYS,

JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);

con.add(jsp,BorderLayout.CENTER);

this.setTitle("聊天服務端,襲風版");

this.setBounds(200,200,300,400);

this.setDefaultCloseOperation(EXIT_ON_CLOSE);

this.setVisible(true);

}

public static void main (String[] args)

{

Server s = new Server(3456); //創建服務器S 端口為3456

s.severStart();

}

}

文章名稱:java代碼添加請求體,JAVA中post如何添加請求體
鏈接地址:http://vcdvsql.cn/article34/hchjpe.html

成都網站建設公司_創新互聯,為您提供Google、手機網站建設、全網營銷推廣小程序開發外貿建站、電子商務

廣告

聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯

成都seo排名網站優化