java介面測試工具
① 介面自動化測試如果選擇java語言會用哪些框架
介面自動化:
如果是那種http協議的介面
那麼第一種,使用eclipse 自己封裝下httpclient ,然後自己寫java腳本進行介面測試 這種要麻煩點
第二種,使用jmeter工具,這個是專門針對http介面的進行性能以及介面測試工具
② java編寫介面測試DEMO
---隨便在網上一搜一大把
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("http://www..com");
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("響應內容為空...");
}
}
}
③ JUnit主要用來完成什麼
JUnit是一個Java語言的單元測試框架。它由Kent Beck和Erich Gamma建立,逐漸成為源於Kent Beck的sUnit的xUnit家族中最為成功的一個。 JUnit有它自己的JUnit擴展生態圈。多數Java的開發環境都已經集成了JUnit作為單元測試的工具
另外junit是在極限編程和重構(refactor)中被極力推薦使用的工具,因為在實現自動單元測試的情況下可以大大的提高開發的效率,但是實際上編寫測試代碼也是需要耗費很多的時間和精力的,那麼使用這個東東好處到底在哪裡呢?筆者認為是這樣的:
極限編程
要求在編寫代碼之前先寫測試,這樣可以強制你在寫代碼之前好好的思考代碼(方法)的功能和邏輯,否則編寫的代碼很不穩定,那麼你需要同時維護測試代碼和實際代碼,這個工作量就會大大增加。因此在極限編程中,基本過程是這樣的:構思-> 編寫測試代碼-> 編寫代碼-> 測試,而且編寫測試和編寫代碼都是增量式的,寫一點測一點,在編寫以後的代碼中如果發現問題可以較快的追蹤到問題的原因,減小回歸錯誤的糾錯難度。
重構
其好處和極限編程中是類似的,因為重構也是要求改一點測一點,減少回歸錯誤造成的時間消耗。
其他情況
我們在開發的時候使用junit寫一些適當的測試也是有必要的,因為一般我們也是需要編寫測試的代碼的,可能原來不是使用的junit,如果使用junit,而且針對介面(方法)編寫測試代碼會減少以後的維護工作,例如以後對方法內部的修改(這個就是相當於重構的工作了)。另外就是因為junit有斷言功能,如果測試結果不通過會告訴我們哪個測試不通過,為什麼,而如果是像以前的一般做法是寫一些測試代碼看其輸出結果,然後再由自己來判斷結果是否正確,使用junit的好處就是這個結果是否正確的判斷是它來完成的,我們只需要看看它告訴我們結果是否正確就可以了,在一般情況下會大大提高效率。
④ java各介面性能如何測試
Java編程下用JMeter Java Sampler進行多介面性能測試,使用方法如下:
/**
*JMeterJavaSampler介紹
*setupTest做些初始化的工作,每個線程只執行一次
*teardownTest做些清理工作,每個線程只執行一次
*runTest具體的測試執行工作,每個並發每次循環都將執行一次
**/
//繼承AbstractJavaSamplerClient
{
//hessian調用地址
privatestaticStringurl="http://10.20.147.182:8080/hessian/remoting/userService";
MyServicecollect=null;
HessianProxyFactoryfactory=newHessianProxyFactory();
publicintid;
@Override
publicvoidsetupTest(JavaSamplerContextarg0){
//獲取jmeter傳入參數
id=arg0.getIntParameter("id");
try{
collect=(MyService)factory.create(
MyService.class,url);
}catch(MalformedURLExceptione){
e.printStackTrace();
}
}
@Override
publicSampleResultrunTest(JavaSamplerContextarg0){
SampleResultsp=newSampleResult();
sp.sampleStart();
Userrt=null;
try{
rt=collect.getUser(id);
}catch(Exceptione){
sp.sampleEnd();
sp.setSuccessful(false);
returnsp;
}
sp.sampleEnd();
if(rt.getId()==id)
sp.setSuccessful(true);
else
sp.setSuccessful(false);
returnsp;
}
@Override
publicvoidteardownTest(JavaSamplerContextcontext){
super.teardownTest(context);
}
}
⑤ 有好的java寫的http介面自動化測試工具嗎
Fiddler 比較好用 支持get post方式發送
⑥ java程序的介面中的測試類該怎麼寫有什麼用呢
其實無論用那種測試方法,介面測試的原理是通過測試程序模擬客戶端向伺服器發送請求報文,伺服器接收請求報文後對相應的報文做出處理然後再把應答報文發送給客戶端,客戶端接收應答報文這一個過程。
用loadrunner實現介面測試
大家都知道loadrunner是一種性能測試工具,但它也可以用在我們做介面測試的時候。開發人員開發出來的介面,提供給測試人員詳細的介面使用說明書,該說明書最基本的要求如下:
介面測試地址:/sns/publish
?xml
version="1.0"
encoding="iso-8859-1"?
<
publish
>
123
456
userid
2
commentstypeid
123
456
don't
forget
the
meeting!
這也是一種寫法,可以跟web_submit_data互換。這種寫法更利於拼接參數。
方法一適合一些xml結構的根元素下的子元素同處於根元素下面,且子元素數目較少的情況下,如果xml結構比較復雜,比如說根元素下面有多級子元素,或者xml樹結構分叉較多的時候,我們可以先把xml拼接成一個字元串然後通過web_custom_request()向伺服器發送請求。
我們在做介面功能測試的時候會很注意介面的應答報文的信息,這時候我們可以通過loadrunner的日誌信息查看或者可以通過web_reg_find()或者web_find()這樣的api函數來統計介面的運行結果,推薦使用web_reg_find(),web_reg_find()和web_find()在這里。
因為web_reg_find()是注冊型函數,所以應該放在web_submit_data()或者web_custom_request()的前面。
⑦ 如何使用java實現介面自動化測試
介面自動化: 如果是那種http協議的介面 那麼第一種,使用eclipse 自己封裝下httpclient ,然後自己寫java腳本進行介面測試 這種要麻煩點 第二種,使用jmeter工具,這個是專門針對http介面的進行性能以及介面測試工具
⑧ java實現之測試第三方介面是否能正確連接
我們在做性能測試時,有時需要自己編寫測試腳本,很多測試工具都支持自定義編寫測試腳本,比如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;
//初始化方法,實際運行時每個線程僅執行一次,在測試方法運行前執行,類似於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測試代碼示例,用於拋磚引玉,希望大家一起交流,共同 進步.