一、RESTful(resource representational state transfer)型別介面測試
(一)GUI介面測試工具:jmeter
1、新增執行緒組
2、新增http請求
3、為執行緒組新增察看結果樹
4、寫入介面引數並執行
5、在檢視結果樹視窗檢視結果
6、多組資料可增加CSVDataSetConfig(新增.csv格式的檔案,並在引數值裡以${x}格式寫入)
此時變數值填寫${變數名},上圖x,y表示每次從檔案裡讀取兩個引數,分別命名為x,y
(二)JAVA語言指令碼測試(HttpClient)
1、GET請求介面測試
1 public void TestGet throws URISyntaxException, ClientProtocolException, IOException{ 2 //1、建立一個客戶端物件 3 CloseableHttpClient client=HttpClients.createDefault(); 4 //2、使用URIBuilder()來生成一個get型別的USI 5 URI uri=new URIBuilder().setScheme("http") 6 .setPort(8080) 7 .setHost("localhost") 8 .setPath("/test1334/Calc") 9 .setParameter("a", "2") 10 .setParameter("b", "3").build(); 11 //3、新建一個httpget型別請求物件,並將uri傳入請求 12 HttpGet get=new HttpGet(uri); 13 //4、新建響應物件,用於接收客戶端執行get結果 14 CloseableHttpResponse response=client.execute(get); 15 //5.從響應物件中提取實際結果,與預期結果進行比對 16 if(response.getStatusLine().getStatusCode()==200){ 17 System.out.println(EntityUtils.toString(response.getEntity())); 18 } 19 }
2、POST請求介面測試
樣例(測一個輸入兩個引數求和的介面):
1 public void TestPOST () throws ClientProtocolException, IOException{ 2 //1.新建一個客戶端物件 3 CloseableHttpClient client=HttpClients.createDefault(); 4 //2.新建post型別請求物件,並傳入uri 5 HttpPost post = new HttpPost("http://172.31.6.155:8080/test1334/Calc"); 6 //3.使用NameValuePair對引數進行打包 7 List<NameValuePair> list=new ArrayList<NameValuePair>(); 8 list.add(new BasicNameValuePair("a","1")); 9 list.add(new BasicNameValuePair("b","2")); 10 //4.對打包好的引數,使用UrlEncodedFormEntity工具類生成實體型別資料 11 //Consts.UTF_8設定伺服器字符集型別 12 UrlEncodedFormEntity entity=new UrlEncodedFormEntity(list,Consts.UTF_8); 13 //5.將含有請求引數的實體物件放入到post請求物件裡 14 post.setEntity(entity); 15 //6.新建一個響應物件接收客戶端執行post請求的結果 16 CloseableHttpResponse response=client.execute(post); 17 //7.從響應物件中提取實際結果,與預期結果進行比對 18 if(response.getStatusLine().getStatusCode()==200){ 19 System.out.println(EntityUtils.toString(response.getEntity())); 20 } 21 }
3、自動化框架
1 @RunWith(Feeder.class) 2 public class getParameter { 3 @Test 4 @Source("data/datas.csv") //資料來源 5 public void test_get(int x,int y,int expect) throws ClientProtocolException, URISyntaxException, IOException{//expect為預期結果,用於與實際結果進行比對 6 TestRESTfultest=new TestRESTful();//TestRESTful為前邊建立TestGet所屬類 7 int returns=test.TestGet(x, y);//此處的為修改後的TestGet,新增了引數和返回值; 8 assertEquals(returns,expect); //將結果與預期進行比較 9 } 10 }
二、WebService介面測試
(一)GUI介面測試工具:SoapUI
1、新建專案
2、輸入WSDL地址或檔案
3、修改“?”內的資料
4、開始測試
(二)JAVA語言指令碼測試(HttpClient)
1、GET請求介面測試
1 public int testGet(int x, int y) throws RemoteException { 2 String target = "http://172.31.6.94:8080/axis2/services/calc?wsdl";//傳入地址 3 //建立一個CalcStub物件 4 CalcStub stub = new CalcStub(target); 5 CalcStub.Add add = new CalcStub.Add(); 6 //傳入引數 7 add.setX(x); 8 add.setY(y); 9 AddResponse response = stub.add(add);//結果 10 int result = response.get_return(); 11 return result; 12 }
2、POST請求介面測試
1 public static void testPOST(int a,int b) throws ClientProtocolException, IOException{ 2 //建立客戶端物件 3 CloseableHttpClient cli=HttpClients.createDefault(); 4 HttpPost po=new HttpPost("http://172.31.6.61:8080/axis2/services/MyService?wsdl"); 5 //將soap協議內容新增進來,即soapXML字串 6 String soapXML="<soapenv:Envelopexmlns:soapenv=\"http://schemas.xmlsoap.org/soap/envelope/\" xmlns:ws=\"http://ws.day3.com\">" 7 +"<soapenv:Header/>" 8 +"<soapenv:Body>" 9 +"<ws:add>" 10 +"<ws:a>"+a+"</ws:a>" 11 +"<ws:b>"+b+"</ws:b>" 12 +"</ws:add>" 13 +"</soapenv:Body>" 14 +"</soapenv:Envelope>"; 15 //將String轉換成實體型別 16 StringEntity entity=new StringEntity(soapXML,Charset.forName("UTF-8")); 17 po.setEntity(entity); 18 CloseableHttpResponse re=cli.execute(po); 19 System.out.println((re.getEntity()).toString()); 20 }
3、自動化框架(同RESTful的自動化測試;略)