软件测试相关-mock篇

在线mock:https://www.mocky.io

 

相关字段描述:

  1、description:字段作为注释,用于接口描述

  2、response:请求响应信息,所有响应内容全部写在该位置下方

    2.1、text:返回内容

    2.2、status:状态码的返回

    2.3、headers:在 response 中指定 HTTP Header

    2.4、proxy:指定响应的url是什么网址

    2.5、redirectTo:重定向跳转

    2.6、Cookie:在响应中添加cookie

    2.7、json:返回json格式的数据

    2.8、file:返回指定文件内容

  3、内置变量:Moco内置了一些变量,在response中可以使用这些变量,让反馈更加智能,以下列举了常用的变量

  • req.version
  • req.method
  • req.content
  • req.headers
  • req.queries
  • req.forms
  • req.cookies
  Demo:
1
[ 2 { 3 "request":{ 4 "uri": "/template", 5 "forms": { 6 "name": "zhangsan", 7 "age": "12" 8 } 9 }, 10 "response": { 11 "text": { 12 "template": "${req.forms['age']}" 13 } 14 } 15 } 16 ]

  4、request:请求数据

    4.1、uri:接口地址

    4.2、queries:请求参数

    4.3、method:请求方式

    4.4、headers:头信息,例如:content-type:application/json

    4.5、cookie:设置cookies信息

    4.6、forms:设置表单参数

    4.7、xml:设置以xml作为请求参数的body

                   

 

 也可以以文件的形式返回xml:文件需要与Jar包在同一目录下

                   

 

     4.8、json:以json做为请求的body

     4.9、match:可以使用正则表达式匹配到请求

                   

  


 

Demo1:(使用全局配置文件,指定不同路径)

1)目录说明:

  1、单独新建一个mock目录

    2、在mock目录新建request和response目录

  3、将moco-runner-0.11.0-standalone.jar放入mock目录下

  4、在mock目录下新建configs.json文件

2)目录结构截图:

      

 3)文件内容如下:

 1 configs.json
 2 [
 3      { "context": "/path1", "include": "request/get.json" },
 4      { "context": "/path2", "include": "request/post.json" }
 5 ]
 6 
 7 get.json   相当于两个请求,地址一样,但是传参不同,得到的结果不同
 8 [
 9     {
10         "request":{
11             "method":"get",
12             "uri":"/getTest",
13             "queries":{  
14                 "param1":"1",
15                 "param2":"2"
16                 }
17         },
18         "response":{
19             "file":    "response/success.json"
20             }
21     },
22     {
23         "request":{ 
24             "method":"get", 
25             "uri":"/getTest"
26             },
27         "response":{ 
28             "file":"response/fail.json"
29             }
30     }
31 ]
32 
33 post.json
34 [
35     {
36         "request":{
37             "method":"post",
38             "uri":"/postMethod",
39             "headers":{
40                 "Content-Type":"application/json"
41             },
42             "json":{
43                 "name":"zhangsan",
44                 "password":"123456"
45             }
46         },
47         "response":{
48             "file":"response/success.json"
49         }
50     },
51     {
52         "request":{
53             "method":"post",
54             "uri":"/postMethod"
55         },
56         "response":{
57             "text":"default"
58         }
59     }
60 ]
61 
62 fail.json
63 {
64     "status":"fail",
65     "status_code":"001",
66     "error_message":"信息错误",
67     "data":{}
68 }
69 
70 success.json
71 {
72     "status":"succ",
73     "status_code":"100",
74     "error_message":"请求成功",
75     "data": {
76         "name":"张三",
77         "password":12345
78     }
79 }

 

4)在命令行模式进入到mock目录,并执行如下命令:

  java -jar moco-runner-0.11.0-standalone.jar http -p 8999 -g configs.json

  

 

 

 注意:

  1、-p指定服务端口,注意不要重复

  2、-g 指定全局配置文件,注意配置文件和Jar包同级目录则直接指定配置文件即可,否则可以使用相对路径

5)测试:

  特别注意:此处访问接口的路径中指定了path1,是因为全局配置文件中指定了context,所有在访问指定接口需要添加context指定的值

  get:测试无参数场景,返回内容即response中指定文件中的内容

          

 

 

   

  get:测试有参数场景

    

 

 

 

  post:测试无参数场景,无参数返回指定的文本信息default

    

 

 

  post:测试有参数场景,注意header需要与post.json文件中请求中的header保持一致,不然访问不通

            

posted @ 2020-02-18 12:51  为你编程  阅读(628)  评论(0)    收藏  举报