在上一章的內容中,我簡單介紹了整個微服務的各個子模塊,還封裝了一些工具類。
當然,若還沒完成上次內容的也可以點擊右側的傳送門------傳送門
EngineApplication
在開發測試引擎模擬接口之前,還需要給xxx-engine創建一個SpringBoot的啟動類。
@SpringBootApplication
@EnableTransactionManagement
@EnableFeignClients
@EnableDiscoveryClient
public class EngineApplication {public static void main(String[] args) {SpringApplication.run(EngineApplication.class,args);}
}
那么這里的幾個接口需要有以下幾個內容:
- get提交
- post提交
- json格式
- 表單格式
- 需要以上模擬接口需要支持參數化和隨機響應延遲
login
@RequestMapping("/api/v1/test/login_form")@ResponseBodypublic JsonData login(String mail, String pwd){if(mail.startsWith("a")){return JsonData.buildError("賬號錯誤");}return JsonData.buildSuccess("mail=" + mail + "pwd=" + pwd);}
使用form表單形式提交,不可以使用json形式提交。
使用postman來測試,測試結果如下:
pay
@PostMapping("/api/v1/test/pay_json")@ResponseBodypublic JsonData pay(@RequestBody Map<String,String> map) {String id = map.get("id");String amount = map.get("amount");return JsonData.buildSuccess("id="+id+",amount="+amount);}
這個方法使用的是post提交,且使用json形式進行提交。
繼續使用postman進行測試,測試結果如下:
paySleep
這個方法會在上面pay方法上,增加隨機睡眠時間的功能。
@PostMapping("/api/v1/test/pay_json_sleep")@ResponseBodypublic JsonData paySleep(@RequestBody Map<String,String> map) {try {int value = RandomUtil.randomInt(1000);TimeUnit.MICROSECONDS.sleep(value);String id = map.get("id");String amount = map.get("amount");return JsonData.buildSuccess("id="+id+",amount="+amount+",sleep="+value);} catch (InterruptedException e) {throw new RuntimeException(e);}}
還是使用postman進行測試,測試結果如下:
queryDetail
@GetMapping("/api/v1/test/query")@ResponseBodypublic JsonData queryDetail(Long id){return JsonData.buildSuccess("id="+id);}
這個方法使用的是get方式提交,并以form表單形式提交。
測試如下:
querySleep
@GetMapping("/api/v1/test/query_sleep")@ResponseBodypublic JsonData querySleep(Long id){try {int value = RandomUtil.randomInt(1000);TimeUnit.MICROSECONDS.sleep(value);return JsonData.buildSuccess("id="+id+",sleep="+value);} catch (InterruptedException e) {throw new RuntimeException(e);}}
這個方法是從以上方法添加了隨機睡眠時間的功能
測試如下:
queryError
@GetMapping("/api/v1/test/query_error_code")@ResponseBodypublic JsonData queryError(Long id, HttpServletResponse response){if(id % 3 == 0){response.setStatus(500);}return JsonData.buildSuccess("id="+id);}
id取模3是0后則http狀態碼500
測試如下:
以上均為本冊測試引擎模擬接口實戰