1. HTTP(HyperText Transfer Protocol) git
說明:超文本傳輸協議,是互聯網上應用最爲普遍的一種網絡協議。github
優勢:就是簡單、直接、開發方便,利用現成的http協議進行傳輸。spring
流程圖:數據庫
2. RPC(Remote Procedure Call)api
說明:遠程過程調用,它是一種經過網絡從遠程計算機程序上請求服務,而不須要了解底層網絡技術的協議。安全
優勢:提高系統可擴展性,傳輸效率更快,安全性更高。服務器
流程圖:網絡
常見請求類型: post(增)、get(查)、put(改)、delete(刪)等。app
1)get型接口框架
格式: 請求數參數寫在網址後面,用"?"鏈接,多個參數之間用"&"鏈接。如:https://api.douban.com/v2/book/search?q='',這是一個豆瓣查詢圖書信息的開發api,q='',單引號裏就是查詢的參數,
如查詢《小王子》這本書的信息,則q='小王子',使用postman工具來試驗一下,以下圖:
場景: get型接口用於獲取信息,多用於查詢數據,如列表查詢功能,點擊查詢按鈕就調用一個get接口,而後把信息返回出來。
特色: 請求數據量小,參數暴露於url地址中,故存在安全隱患。
2)post型接口
說明: 向指定資源位置提交數據(如提交表單、上傳文件)來進行請求,post請求可能會致使新資源的創建
場景: 如註冊、上傳、發帖等功能,如用戶在豆瓣網站對某本書進行收藏、寫筆記、發表評論
特色: 請求數據量大,安全性高
如豆瓣的發表評論的開放api,見下圖:
3)put型接口
說明: put請求用於向指定資源位置上傳最新內容
場景: 如用戶在豆瓣網站修改對某本書的收藏、修改某篇筆記或修改評論
如豆瓣的修改評論的開放api,見下圖:
4)delete型接口
說明: 請求服務器刪除請求裏url所標識的資源
場景: 如用戶在豆瓣網站取消對某本書的收藏、刪除某篇筆記或刪除評論
如豆瓣的刪除評論的開放api,見下圖:
----- 此部分摘抄自:http://www.javashuo.com/article/p-wjeahddv-ba.html
1)RPC接口其應用框架比較多,各有特點,普遍使用的有RMI、Hessian、Dubbo等,此次咱們主要介紹一下Dubbo框架。
Dubbo是一個高性能、輕量級的RPC框架。主要提供三個關鍵功能,包括基於接口的遠程調用、容錯和負載平衡、以及自動服務註冊和發現。
2)流程圖:
3)測試環境搭建:
a. pom.xml引入相關service應用jar依賴(示例:)
<dependencies> <dependency> <groupId>com.test.service</groupId> <artifactId>base-service-test</artifactId> <version>0.0.1-SNAPSHOT</version> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-actuator</artifactId> </dependency> <dependency> <groupId>jdk.tools</groupId> <artifactId>jdk.tools</artifactId> <version>1.8</version> <scope>system</scope> <systemPath>${JAVA_HOME}/lib/tools.jar</systemPath> </dependency> </dependencies>
b. dubbo服務spring配置(示例:)
<!-- 引入資源配置 --> <import resource="spring-resource.xml"/> <!-- 具體的實現bean --> <bean id="demoServer" class="com.dub.provider.impl.DemoServerImpl" /> <!-- 提供方應用信息 --> <dubbo:application name="xs_provider" /> <!-- zookeeper服務器地址 --> <dubbo:registry address="zookeeper://localhost:2181" /> <!-- 用dubbo協議暴露服務 --> <dubbo:protocol name="dubbo" port="20880" /> <!-- 聲明須要暴露的服務接口 --> <dubbo:service interface="com.dub.provider.DemoServer" ref="demoServer" /> <!------------------------------------------------------------------------> <!-- 在工程resources下添加其資源配置文件--> <dubbo:application name="hjy_consumer" /> <dubbo:reference interface="com.dub.provider.DemoServer" id="demoServer" url="dubbo://localhost:20880" timeout="10000" />
c. 基於TESTNG數據驅動編寫方法(示例:)
@RunWith(SpringJUnit4ClassRunner.class) @ContextConfiguration(locations = {"classpath:/spring.xml"}) @Configuration
//++++++++++++繼承方法++++++++++++ public class BaseTestNGTest extends AbstractTestNGSpringContextTests {
//++++++++++++數據收集++++++++++++ @DataProvider(name = "testdata") public Object[][] dataprovide()throws IOException{ System.out.println("dataprovide"); // return new Object[][]{{2000020013,2},{2001000138,0},{2001000139,2}}; Object[][] testData =ExcelHandle.readXlsx(excel, "sheet2"); return testData; } //++++++++++++數據傳遞++++++++++++ @Test(dataProvider="testdata") public void test_case_1(HashMap<String, String> map) throws Exception { operatorUserId=Integer.valueOf(map.get("userId")); exceptedvalue=Integer.valueOf(map.get("excepted")); //++++++++++++實際值++++++++++++ Integer actual_value=billService.getUserEmailNameCount(operatorUserId); //++++++++++++預期值++++++++++++ Integer excepted_value=get_excepted_value(operatorUserId); //+++++++++++++驗證+++++++++++++ Assert.assertEquals(actual_value,exceptedvalue); } }
1)查看接口文檔,瞭解接口功能及其業務邏輯
2)肯定接口調用協議(http、rpc等)
3)肯定請求類型(post、get等)
4)肯定請求地址/調用方法
5)組裝請求報文 ☆☆☆☆☆(參考測試設計)
6)選用適用工具或編寫腳本測試
7)檢查返回碼,及其描述
8)檢查返回值,及其對應數據庫數據變化
----- 以上僅爲我的測試經驗,固然接口測試不單單如此,更多還須要你們本身去發掘,同時歡迎各路大神指點。