当前位置:   article > 正文

一款idea插件,让接口测试效率提升N倍_idea接口测试插件

idea接口测试插件

idea 中的:HTTP Client,这款工具挺好用的,主要优点:
1、若想测试一个接口,只需要几行代码
2、运行特别容易
3、可以切换各种环境的请求地址

创建一个 springboot 项目

核心实现

IndexController

  1. package com.example.demo;
  2. import org.springframework.web.bind.annotation.*;
  3. import org.springframework.web.multipart.MultipartFile;
  4. import javax.servlet.http.HttpServletRequest;
  5. import java.util.HashMap;
  6. import java.util.List;
  7. import java.util.Map;
  8. @RestController
  9. public class IndexController {
  10. /**
  11. * get请求
  12. */
  13. @RequestMapping("/get")
  14. public String get() {
  15. return "[get]";
  16. }
  17. /**
  18. * post请求,模拟表单提交
  19. */
  20. @PostMapping("/post")
  21. public Map<String, String[]> post(HttpServletRequest request) {
  22. return request.getParameterMap();
  23. }
  24. /**
  25. * post请求json数据
  26. */
  27. @PostMapping("/body")
  28. public List<Integer> body(@RequestBody List<Integer> list) {
  29. System.out.println("[body]");
  30. return list;
  31. }
  32. /**
  33. * post请求json数据
  34. */
  35. @PostMapping("/body2")
  36. public String body(@RequestBody User user) {
  37. System.out.println("[body2]");
  38. System.out.println(user);
  39. return "[success-body2]";
  40. }
  41. /**
  42. * put请求
  43. */
  44. @PutMapping("/put")
  45. public String put() {
  46. return "[send put]";
  47. }
  48. /**
  49. * 模拟多文件上传,并带上表单数据
  50. * 这个请求可以想象为页面中的一个表单提交,表单有 4 个元素:2 个 File 元素,用来选择需要上传的 2 个文件。2 个输入框,分别用来输入 userName 和 age。
  51. */
  52. @PostMapping("/upload")
  53. public Map<String, Object> upload(@RequestParam("file1") MultipartFile file1,
  54. @RequestParam("file2") MultipartFile file2,
  55. User user,
  56. HttpServletRequest request) {
  57. Map<String, Object> result = new HashMap<>(1);
  58. result.put("file1.size", file1.getSize());
  59. result.put("file1.name", file1.getName());//file1
  60. result.put("file1.originalFilename", file1.getOriginalFilename());//pic_1.jpeg
  61. result.put("file2.size", file2.getSize());
  62. result.put("file2.name", file2.getName());//file2
  63. result.put("file2.originalFilename", file2.getOriginalFilename());//pic_2.jpeg
  64. result.put("user", user);
  65. result.put("params", request.getParameterMap());//userName、age
  66. return result;
  67. }
  68. static class User {
  69. private String userName;
  70. private int age;
  71. public String getUserName() {
  72. return userName;
  73. }
  74. public void setUserName(String userName) {
  75. this.userName = userName;
  76. }
  77. public int getAge() {
  78. return age;
  79. }
  80. public void setAge(int age) {
  81. this.age = age;
  82. }
  83. @Override
  84. public String toString() {
  85. return "User{" +
  86. "userName='" + userName + '\'' +
  87. ", age=" + age +
  88. '}';
  89. }
  90. }
  91. }

http-client.env.json

  1. {
  2. "dev": {
  3. "url": "http://localhost:8080"
  4. },
  5. "test": {
  6. "url": "http://localhost:9090"
  7. }
  8. }

index.http

  1. ### get 请求
  2. GET http://localhost:8080/get
  3. ### post
  4. ### 提交表单数据,将表单内的数据转换为键值对,会封装到一个map中,比如 test=xxx&name=sss
  5. POST http://localhost:8080/post
  6. Content-Type: application/x-www-form-urlencoded
  7. name=张三&age=23
  8. ### post
  9. ### 提交表单数据,将表单内的数据序列化为json字符串,会封装到@RequestBody标注的参数上,比如 {"test": "xxx"}
  10. POST http://localhost:8080/body
  11. Content-Type: application/json
  12. [3,10,40]
  13. ### post
  14. ### 提交表单数据,将表单内的数据序列化为json字符串,会封装到@RequestBody标注的参数上,比如 {"test": "xxx"}
  15. POST http://localhost:8080/body2
  16. Content-Type: application/json
  17. {
  18. "userName": "ktz",
  19. "age": 22
  20. }
  21. ### put请求 服务实际使用端口为8080,因此dev环境测试成功
  22. #PUT http://localhost:8080/put
  23. PUT {{url}}/put
  24. ### 多文件上传文件
  25. ### boundary 表示参数和参数值定义范围的起始边界线,对应的默认值是 WebAppBoundary,也可以自定义,比如:WebAppBoundary123
  26. ### 如果有多个请求参数,各个参数需要使用--WebAppBoundary来作为它们的边界分隔符(前后都需要)
  27. ### 对应postman中的操作,选择一个文件,如何定位其位置呢?需要使用”<“这个符号
  28. ### 另外需要注意换行问题
  29. POST http://localhost:8080/upload
  30. Content-Type: multipart/form-data; boundary=WebAppBoundary
  31. --WebAppBoundary
  32. Content-Disposition: form-data; name="file1"; filename="x2.jpg"
  33. < C:\Users\LOSER\Pictures\Saved Pictures\x2.jpg
  34. --WebAppBoundary--
  35. --WebAppBoundary
  36. Content-Disposition: form-data; name="file2"; filename="x3.jpg"
  37. < C:\Users\LOSER\Pictures\Saved Pictures\x3.jpg
  38. --WebAppBoundary--
  39. --WebAppBoundary--
  40. Content-Disposition: form-data;name=userName
  41. dg
  42. --WebAppBoundary--
  43. --WebAppBoundary--
  44. Content-Disposition: form-data;name=age
  45. 23
  46. --WebAppBoundary—

测试接口

 HTTP client 的使用
创建 http 后缀的文件,文件必须以 http 为后缀,这种文件会自动被 HTTP Client 插件识别,效果如下:

  

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/羊村懒王/article/detail/255052?site
推荐阅读
相关标签
  

闽ICP备14008679号