java介面測試腳本
❶ java中的介面怎麼實現
舉個面積的例子:在java中,定義一個介面,聲明計算長方形面積和周長的抽象方法,再用一個類去實現這個介面,再編寫一個測試類去使用這個介面。首先,介面必須單獨存放,如果我們用eclipse編程的話,它們提示:The public type **** must be defined in its own file,意思是必須要定義在其自己的文件中,所以要為介面文件單獨存放起來,舉例,我們的介面滑擾要實現獲到矩形的長,寬,面積,周長,所以定義以下的介面。public interface calrect {x0dx0apublic abstract int calarea();x0dx0apublic abstract int calgirth();x0dx0apublic abstract int getx();x0dx0apublic abstract int gety();x0dx0a}注意,定義介面就像定義類一樣,介面的訪問控制符只能用public,用public定義的介面可以被所有的類和包引用,而預設的則只能罩納被同一個包中的其他類和介面引用,這符合JAVA中訪問控制符的一般要求,關於介面再引用其他介面則是後話。以上介面文件名為calrect.java.另外需要指出的是介面中不能給方法給出方法體。接下來,需要定義一個類來實現介面,因為不知道JAVA的內置矩形類是什麼名,所以為了安全,將該類定義為RRect,這可以認為是一物讓沒種安全策略。關於implements,可以參考其他資料。該類引用了介面calrect,所以必須對calrect中的方法一一實現。//定義矩形類 應用介面class RRect implements calrect{private int x;x0dx0aprivate int y;public RRect (){x0dx0a x=3;y=4;x0dx0a}x0dx0apublic int calarea(){x0dx0a return x*y;x0dx0a}x0dx0apublic int calgirth(){x0dx0a return x*2+y*2;x0dx0a}x0dx0apublic int getx(){x0dx0a return x;x0dx0a}x0dx0apublic int gety(){x0dx0a return y;x0dx0a}x0dx0a}//接下來,定義一個測試類,所謂測試類,我理解為定義一個類,在其定義類RRect的對象,並驗證其中的方法,看看是不是可以正常使用//定義Class1類x0dx0apublic class Class1{x0dx0aRRect rect;x0dx0apublic static void main(String []args){x0dx0a RRect rect=new RRect();x0dx0a System.out.println("矩陣的長"+ rect.getx());x0dx0a System.out.println("矩陣的寬"+ rect.calarea());x0dx0a System.out.println("矩陣的面積"+ rect.calarea());x0dx0a System.out.println("矩形的周長 "+rect.calgirth());x0dx0a}x0dx0ax0dx0a}運行結果:矩陣的長3x0dx0a矩陣的寬12x0dx0a矩陣的面積12x0dx0a矩形的周長 14註:介面單存放,介面實現類和測試類可以存放在一個文件中
❷ 常見介面測試工具有哪些使用哪個好
1.
主流介面測試工具:Jmeter、PostMan、RESTClient、Fiddler、Requests庫,不同測試環境不同需求,選擇不同工具。
1).
Jmeter:Java開發一款開源免費工具,適合介面功能測試、介面自動化測試、介面壓力測試
【推薦】
2).
PostMan:谷歌公司開發的一款工具,分為瀏覽器插件版和客戶端版。
適合開發自測介面、測試調試介面
3).
RESTClient:一款國人開發的火狐瀏覽器插件,界面簡單,支持高亮顯示,調試、自測
推薦。
4).
Fiddler:強大的抓包工具,支持介面請求、響應。
5).
Requests庫:python語言中一個第三方請求庫,使用代碼測試介面不二選擇。注意:適合python語言
以上內容均來自黑馬程序員軟體測試課程筆記
❸ java 介面調用,根據介面文檔寫測試,用post方法,剛怎麼做啊,有個完整的例子么
可使用android自帶的httpclient框架實現。
1. GET 方式傳遞參數
//先將參數放入List,再對參數進行URL編碼
List<BasicNameValuePair> params = new LinkedList<BasicNameValuePair>();
params.add(new BasicNameValuePair("param1", "數據")); //增加參數1
params.add(new BasicNameValuePair("param2", "value2"));//增加參數2
String param = URLEncodedUtils.format(params, "UTF-8");//對參數編碼
String baseUrl = "伺服器介面完整URL";
HttpGet getMethod = new HttpGet(baseUrl + "?" + param);//將URL與參數拼接
HttpClient httpClient = new DefaultHttpClient();
try {
HttpResponse response = httpClient.execute(getMethod); //發起GET請求
Log.i(TAG, "resCode = " + response.getStatusLine().getStatusCode()); //獲取響應碼
Log.i(TAG, "result = " + EntityUtils.toString(response.getEntity(), "utf-8"));//獲取伺服器響應內容
} catch (ClientProtocolException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
2. POST方式 方式傳遞參數
//和GET方式一樣,先將參數放入List
params = new LinkedList<BasicNameValuePair>();
params.add(new BasicNameValuePair("param1", "Post方法"));//增加參數1
params.add(new BasicNameValuePair("param2", "第二個參數"));//增加參數2
try {
HttpPost postMethod = new HttpPost(baseUrl);//創建一個post請求
postMethod.setEntity(new UrlEncodedFormEntity(params, "utf-8")); //將參數填入POST Entity中
HttpResponse response = httpClient.execute(postMethod); //執行POST方法
Log.i(TAG, "resCode = " + response.getStatusLine().getStatusCode()); //獲取響應碼
Log.i(TAG, "result = " + EntityUtils.toString(response.getEntity(), "utf-8")); //獲取響應內容
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
} catch (ClientProtocolException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
❹ 如何使用java實現介面自動化測試
介面自動化: 如果是那種http協議的介面 那麼第一種,使用eclipse 自己封裝下httpclient ,然後自己寫java腳本進行介面測試 這種要麻煩點 第二種,使用jmeter工具,這個是專門針對http介面的進行性能以及介面測試工具
❺ 使用Jmeter進行http介面性能測試
在進行網頁或應用程序後台介面開發時,一般要及時測試開發的介面能否正確接收和返回數據,對於單次測試,Postman插件是個不錯的Http請求模擬工具。
但是Postman只能模擬單客戶端的單次請求,而對於模擬多用戶並發等性能測試,就必須藉助其他的工具了,這里推薦功能強大的JMeter自動化測試工具
Apache JMeter - Apache JMeter™
Apache JMeter是Apache組織開發的基於Java的壓力測試工具。用於對軟體做壓力測試,它最初被設計用於Web應用測試但後來擴展到其他測試領域。 它可以用於測試靜態和動態資源例如靜態文件、Java 小服務程序、CGI 腳本、Java 對象、資料庫, FTP 伺服器, 等等。JMeter 可以用於對伺服器、網路或對象模擬巨大的負載,來自不同壓力類別下測試它們的強度和分析整體性能。
下面就以上圖的Restful類型的介面為例簡單介紹使用Jmeter進行介面測試的方法。
獲取某個具體網關設備的基本信息。
請求
方法:GET
URI:/api/gateway/<gateway_id>
參數:
在HTTP請求(http request)的頭部(header)添加Userid和Token欄位作為用戶驗證欄位
響應
返回值:JSON格式的網關信息
參數:
.啟動jmeter:在bin下以管理員身份運行jmeter.bat,啟動jmeter
2. 創建測試計劃:
默認啟動jmeter時會載入一個測試技術模板,保存測試計劃:修改名稱為Apitest,點擊保存,選擇保存路徑,後面的步驟,每次添加或修改了了一些選項,軟體並不會自動保存到jmx文件中,所以進行測試後,如果需要保存本次測試選項,要手動到「文件」菜單中保存一下。
3. 添加線程組
右鍵左邊樹中的測試計劃「Apitest」節點,「添 加」→」Threads」→」線程組」
添加成功後,「Apitest」節點下多了「線程組」 節點,當然這個線程組的名稱是可以自己設定的。
4. 添加http默認請求:(用來配置公共參數,不是http請求)
右鍵線程組,選擇「添加」→ 「配置元件」→「HTTP請求默認值」,點擊「HTTP請求默認值」後
添加成功後,線程組」節點下多了「HTTP請求默認值」節點
這里可以設置主機地址等一下公共參數,比如我們的例子中請求路徑前面都是主機地址+index.php,就可以統一在"http請求默認值"里設置
填寫默認請求名、伺服器、默認請求路徑,保存測試計劃。
5.添加http請求信息頭
這一項並不是必須的,只不過我們的例子中使用了Userid和Token放在HTTP請求頭中用作用戶驗證
右鍵「Apitest」,選擇「添加」→ 「配置元件」→「HTTP信息頭管理器」
6. 添加http請求
右鍵「Apitest」,選擇「添加」→ 「Sampler」→「HTTP請求」
添加成功後,出現新的節點「HTTP請求」,就可以填寫具體的請求參數了。
填寫完成,保存測試計劃
7. 添加監聽器:
右鍵線程組,選擇「添加」→「監聽器」→「XXXXXXXXX」
可以添加的監聽器有很多種,可以添加多個監聽器,這里我們添加幾個常用的「圖形結果」、「察看結果樹」、「聚合報告」
添加成功後,「線程組」下增加了幾個節點
8. 試運行
點擊執行
可以查看各個「監聽器」的結果
Label:每個 JMeter 的 element(例如 HTTP Request)都有一個 Name 屬性,這里顯示的就是 Name 屬性的值
#Samples:表示你這次測試中一共發出了多少個請求,如果模擬10個用戶,每個用戶迭代10次,那麼這里顯示100
Average:平均響應時間——默認情況下是單個 Request 的平均響應時間,當使用了 Transaction Controller 時,也可以以Transaction 為單位顯示平均響應時間
Median:中位數,也就是 50% 用戶的響應時間
90% Line:90% 用戶的響應時間
Note:關於 50% 和 90% 並發用戶數的含義,請參考下文
http://www.cnblogs.com/jackei/archive/2006/11/11/557972.html
Min:最小響應時間
Max:最大響應時間
Error%:本次測試中出現錯誤的請求的數量/請求的總數
Throughput:吞吐量——默認情況下表示每秒完成的請求數(Request per Second),當使用了 Transaction Controller 時,也可以表示類似 LoadRunner 的 Transaction per Second 數
KB/Sec:每秒從伺服器端接收到的數據量,相當於LoadRunner中的Throughput/Sec
9. 修改線程組的線程數等參數,用於壓力測試
點擊左側樹形導航中的「線程組」
設置上面幾個參數,模擬的總的請求數是:線程數*循環次數。執行一下,用「圖形結果」監聽器查看一下
樣本數目:總共發送到伺服器的請求數.
最新樣本:代表時間的數字,是伺服器響應最後一個請求的時間.
吞吐量:伺服器每分鍾處理的請求數.
平均值:總運行時間除以發送到伺服器的請求數.
中間值:時間的數字,有一半的伺服器響應時間低於該值而另一半高於該值.
偏離:伺服器響應時間變化、離散程度測量值的大小,或者,換句話說,就是數據的分布.
❻ 給講講java介面的概念!
介面可以看成是特殊的抽象類。即只包含抽象方法和常量的抽象類。可以通過interface關鍵字來定義介面。看如下代碼:
interface Runner {
public static int DEFAULT_SPEED = 100;
public void run();
}
注意,run()方法,此處可以省略public abstract。因其默認就是public abstract的。
實現介面
與繼承不同,一個類可以實現多個介面,實現的介面直接用逗號分隔。當然,該類需要實現這些介面中定義的所有方法;
一個類可以通過implements關鍵字」實現」介面。一個類實現了某個介面後必須實現該介面中定義的所有方法。看下面的代碼,類實現了介面並實現了方法:
class AmericanCurl implements Runner , … {
public void run() {
System.out.println("run...");
}
}
另外需要說明的一點,介面可以作為一種類型聲明變數,一個介面類型的變數可以引用實現了該介面的類的對象;通過該變數可以調用該介面中定義的方法(具體的實現類提供了方法的實現)。代碼如下所示:
Runner runner = new AmericanCurl();
此句代碼為,一個介面類型變數,引用了子類的對象。調用時,調用的是子類對象的具體的實現。
介面的繼承
介面間可以存在繼承關系,一個介面可以通過extends關鍵字繼承另外一個介面。子介面繼承了父介面中定義的所有方法。代碼如下所示:
interface Runner {
public void run();
}
interface Hunter extends Runner {
public void hunt();
}
class AmericanCurl implements Hunter {
public void run() {… … …}
public void hunt() {… … …}
}
說明:AmericanCurl實現了Hunter,必須實現Hunter介面中的hunt方法以及其父介面Runner中的run方法。
介面和抽象類的區別
一個類只能繼承一個抽象類,但可以實現多個介面。
抽象類中可以包含抽象方法和非抽象方法,而介面中的所有方法均為抽象的。
子類繼承抽象類必須實現抽象類中所有抽象方法,否則子類也必須是抽象類。而子類實現介面則必須實現介面中的所有抽象方法。