python接口测试之mock(二)

上一篇对mock-server已经做了初步的介绍,今天这里继续接着之前的介绍进行,我们先看之前的mock-server部分,之前编写了一个登录的mock,具体json文件见如下的内容:

小王子1110

python接口测试之mock(一)

在现在的软件开发过程中,特别是app的部分,需要的很多数据以及内容,都是来自server端的API,但是不能保证在客户端开发的时候,api在 server端已经开发完成,专门等着前端来调用,理想的情况是前端在开发的时候,已经有人写好了接口,直接调用就可以了,但是这仅仅是理想的情况,很多 时候,现实总是比理想多一层思考和磨难,如果在前端开发的时候,提供api的同学没有提供,那么怎么办?等待还是自己先开发,等待肯定是愚蠢的做法,那么 自己开发怎么来解决api提供数据的这个问题,那么使用mock就可以很好的解决,什么是mock?mock简单的理解就是开发在开发的过程中,需要依赖 一部分的接口,但是对方没有提供或者环境等等情况,总之是没有,那么开发使用mock server自己来mock数据,方便自己正常的进行开发和对编写的功能进行自测。在http://central.maven.org/maven2/com/github/dreamhead/moco-runner/0.12.0/moco-runner-0.12.0-standalone.jar 地址中可以下载到moco-runner-0.12.0-standalone.jar,下载下来就是一个jar,在该地址中,作者对这部分有详细的说明和启动mock server方法,这里不在重复的再次说明。

下面我们简单的编写一个登录的,见编写的login.json字符串:
复制代码

[
  {
    "request":
    {
      "method":"post",
      "uri":"/login",

      "json":
      {
        "username":"admin",
        "password":"admin",
        "roleID":22
      }
    },
    "response":
    {
     "json":
      {
        "username":"xiaowangzi",
        "stuNo":001,
        "token":"asdgfhh32456asfgrsfss"
        }
    }
  }
]    

 

查看上面的内容,我们可以看出,在UI或者接口的自动化测 试中,我们知道在TDD的模式中,对数据进行分离,这样也是为了维护的方便,这样的目的是为了后期自动化测试用例的扩展性,和它的易维护性,那么下来我们来对上面的json文件进行修改下,对response部分的数据进行分离下,把它放在一个文件中,这样就可以分离了出来,我们把response的内容 从login.json分离到login_response.json切记login.json与login_response.json务必保持在同一 个目录下,见login.json的内容:

 

[
  {
    "request":
    {
      "method":"post",
      "uri":"/login",

      "json":
      {
        "username":"admin",
        "password":"admin",
        "roleID":22
      }
    },
    "response":
    {
      "file":"login_response.json"
      
    }
  }
]

 

见login_response.json文件的内容:

 

{
    "username":"xiaowangzi",
    "stuNo":001,
    "token":"asdgfhh32456asfgrsfss"
}

 

执行login.json文件后,访问该接口,看是否OK,见执行login.json文件的命令:

使用Fiddler查看该接口,看是否OK,见如下的截图:

Fiddler查看响应:

 

下面我们再添加一个业务,就是输入学生的学号,查询该学生的详细信息,直接在login.json文件中完善,见完善后的内容:

 

[
  {
    "request":
    {
      "method":"post",
      "uri":"/login",

      "json":
      {
        "username":"admin",
        "password":"admin",
        "roleID":22
      }
    },
    "response":
    {
      "file":"login_response.json"
      
    }
  }
  ,
  {
    "request":
    {
      "method":"post",
      "uri":"/info",
      "json":
      {
        "token":"asdgfhh32456asfgrsfss",
        "stuNo":"001"
      }
    },
    "response":
    {
      "file":"info.json"
    }
  }
]

 

info.json的内容如下:

{
  "stuInfo":
  {
    "username":"xiaowangzi",
    "stuNo":"001",
    "age":"17",
    "gender":"female"
  },
  "grade":"junior",
  "Math":"89",
  "English":"59"
}

见查询学生详细信息接口请求的结果,见如下的Fiddler截图:

 

这样就可以构造两个接口 进行参数的传递了.

 

posted on 2018-01-02 22:39  小王子1110  阅读(1304)  评论(0编辑  收藏  举报

导航