简单的接口测试
引言:你好,我是handsomecui,下面介绍自己琢磨出的一种接口测试的方法。
来由:网上的接口测试工具五花八门,想了想还是自己写的针对方法的测试,比较严谨,错误以及麻烦的地方欢迎大家留言指正。
思路:本想着用junit来写的,但是 单元测试与webservice好像有冲突,然后就想着创建一个测试类,里面放各种方法的json测试传,通过浏览器传的方法名反射得到方法,以及json串。
测试类的设计:自己创建json串,处理各种情况,具体方法创建各种测试串。
下面是具体代码:
package com.rrkj.test; import com.google.gson.JsonArray; import com.google.gson.JsonObject; public class LibraryTest { private JsonObject jsonObject = new JsonObject(); private JsonObject jsonObject2 = new JsonObject(); private JsonObject jsonObject3 = new JsonObject(); private JsonObject jsonObject4 = new JsonObject(); private JsonObject jsonObject5 = new JsonObject(); private JsonArray jsonArray = new JsonArray(); private JsonArray empArray = new JsonArray(); public LibraryTest() { jsonObject3.addProperty("title", "新水浒传"); jsonObject3.addProperty("author", "施耐庵"); jsonObject3.addProperty("hold", "258"); jsonObject5.addProperty("title", "西游记"); jsonObject5.addProperty("author", "吴承恩"); jsonObject5.addProperty("hold", "369"); jsonArray.add(jsonObject3); //jsonArray.add(jsonObject3); //jsonArray.add(jsonObject5); jsonObject4.addProperty("sid", "3c77f0993c164de49d55512bd19991ee"); jsonObject4.addProperty("uid", "27c1998783bb415d9bdbdb6a5dd4ebdd"); jsonObject.add("session", jsonObject4); } //jsonObject2.add("books", jsonArray); //jsonObject2.addProperty("orderId", "6"); //jsonObject2.addProperty("cardId", "2"); //jsonObject2.addProperty("isPrepare", "1"); //jsonObject2.addProperty("type", "1"); public String borrow() throws Exception{ jsonObject2.addProperty("orderId", "7"); jsonObject2.addProperty("cardId", "2"); jsonObject2.add("books", empArray); jsonObject.add("data", jsonObject2); return jsonObject.toString(); } public String managerList(){ jsonObject2.addProperty("type", "1"); jsonObject.add("data", jsonObject2); return jsonObject.toString(); } public String prepare(){ jsonObject2.addProperty("orderId", "8"); jsonObject2.addProperty("isPrepare", "1"); jsonObject2.add("book", jsonObject5); jsonObject.add("data", jsonObject2); return jsonObject.toString(); } public String returnBook(){ jsonObject2.addProperty("cardId", "2"); jsonObject2.add("books", jsonArray); jsonObject.add("data", jsonObject2); return jsonObject.toString(); } public String orderAdd(){ jsonObject2.add("book", jsonObject3); jsonObject.add("data", jsonObject2); return jsonObject.toString(); } public String orderList(){ return jsonObject.toString(); } public String orderSubmit(){ jsonObject2.add("books", jsonArray); jsonObject.add("data", jsonObject2); return jsonObject.toString(); } public String orderHistory(){ return jsonObject.toString(); } public String orderDelete(){ jsonObject2.add("book", jsonObject5); jsonObject.add("data", jsonObject2); return jsonObject.toString(); } public String collectionAdd(){ jsonObject2.add("book", jsonObject5); jsonObject.add("data", jsonObject2); return jsonObject.toString(); } public String collectionList(){ return jsonObject.toString(); } public String collectionDelete(){ jsonObject2.add("book", jsonObject5); jsonObject.add("data", jsonObject2); return jsonObject.toString(); } }
然后在webservice,反射调用就可以了:
下面是webservice详细代码:
public String test(String method) throws Exception{ LibraryTest test = new LibraryTest(); Method testMethod = this.getClass().getMethod(method, String.class); Method json = test.getClass().getMethod(method, null); testMethod.invoke(this, json.invoke(test, null)); return this.JsonResponseWithoutData(); }