zoukankan      html  css  js  c++  java
  • mock的使用,easy-mock使用方法详解

    mock的重要性

    mock就是对某些不容易构造或者不容易获取的对象,用一个虚拟的对象来创建的方法。项目开发和测试过程中,遇到以下的情况,就需要模拟结果返回;

    1.当另一方接口或服务还未完成,阻碍项目进度时,可以通过mock的方式,实现并发开发;

    2.接口不满足目前的测试需求,虽然接口已经实现,但是个别字段/返回不满足测试要求;

    mock数据实现方式:

    a) 使用moco,运行moco需要java环境和moco的jar包;可参考https://www.cnblogs.com/canglongdao/p/12174046.html

    b) 使用easy-mock,easymock根据其官网的解释是一个在线的可视化生产模拟数据的在线服务;

    easy-mock官网 https://easy-mock.com/ 注册用户;easy-mock官网,时常登录不进去;本人在centos7下,使用docker-compose搭建了easy-mock;

    a) 登录成功之后,点击‘+’,创建项目;

    b) 填写信息,项目名和url都是按照自己的意愿来填写,这会为最后生成的api数据接口提供地址;

     

     

     c)在刚新增的项目下,创建接口;

     

     d)写下mock的代码

     

      

    准备工作

    Mock.js的语法规范

    a) 数据模板中的每个属性由3部分构成:属性名|生成规则:属性值;'name|rule':value;

     

     

     

    b) 数据占位只在属性值字符串中占个位置,并不出现在最终的属性值中;@占位符;如,first: '@FIRST',

    学习mock.js语法可以参考:http://mockjs.com/examples.html

    Easy Mock 

    重点来了,现在正式开始

    常见使用方式;

    a)静态数据

     

     使用postman,访问上面的接口;

     

     b)动态数据

    结合Mock.js的语法,将json改造一下,可以生成随机数据,这样就避免了每次都是一样的假数据,比较符合真实的开发场景;

     

     访问结果:

    {
    "code": 0,
    "message": "success",
    "update_time": "2020-03-23 14:13:35",
    "date": [
    {
    "id": "350000200105144139",
    "wechat_id": "uvejr",
    "phone": "18317783811",
    "name": "易平",
    "index": 0
    },
    {
    "id": "710000197310224771",
    "wechat_id": "edwlf",
    "phone": "14716374632",
    "name": "郑芳",
    "index": 1
    },
    {
    "id": "120000198902135814",
    "wechat_id": "kwqzr",
    "phone": "14602287701",
    "name": "邹刚",
    "index": 2
    },
    {
    "id": "320000197610278437",
    "wechat_id": "pdizh",
    "phone": "18218458340",
    "name": "邵军",
    "index": 3
    },
    {
    "id": "510000197001172974",
    "wechat_id": "qfqib",
    "phone": "15688701241",
    "name": "刘超",
    "index": 4
    },
    {
    "id": "430000197705068278",
    "wechat_id": "dxdit",
    "phone": "17317161292",
    "name": "张杰",
    "index": 5
    },
    {
    "id": "630000200502158419",
    "wechat_id": "orstl",
    "phone": "18482418154",
    "name": "潘芳",
    "index": 6
    },
    {
    "id": "820000199101301552",
    "wechat_id": "cqnwa",
    "phone": "17556169014",
    "name": "蒋超",
    "index": 7
    },
    {
    "id": "500000200512276276",
    "wechat_id": "pfhhj",
    "phone": "14645062242",
    "name": "钱洋",
    "index": 8
    },
    {
    "id": "360000198403159779",
    "wechat_id": "ybqxh",
    "phone": "18645282758",
    "name": "吕涛",
    "index": 9
    },
    {
    "id": "410000197003273847",
    "wechat_id": "etjjx",
    "phone": "15791192417",
    "name": "赖霞",
    "index": 10
    },
    {
    "id": "21000020050904386X",
    "wechat_id": "likhn",
    "phone": "17863849283",
    "name": "沈霞",
    "index": 11
    },
    {
    "id": "540000197004132770",
    "wechat_id": "kjfid",
    "phone": "13935155232",
    "name": "邓娟",
    "index": 12
    },
    {
    "id": "130000200606127387",
    "wechat_id": "qtxdi",
    "phone": "15215242105",
    "name": "范秀英",
    "index": 13
    },
    {
    "id": "500000198304215903",
    "wechat_id": "cmtvi",
    "phone": "15371744331",
    "name": "金军",
    "index": 14
    },
    {
    "id": "340000201006192672",
    "wechat_id": "nbacn",
    "phone": "15764835310",
    "name": "傅秀英",
    "index": 15
    },
    {
    "id": "34000019710901620X",
    "wechat_id": "tdygr",
    "phone": "17188330258",
    "name": "吴超",
    "index": 16
    },
    {
    "id": "540000199608183092",
    "wechat_id": "osodq",
    "phone": "14704726452",
    "name": "任娟",
    "index": 17
    },
    {
    "id": "330000197304230808",
    "wechat_id": "sviuj",
    "phone": "15948378749",
    "name": "段娟",
    "index": 18
    },
    {
    "id": "430000198006267053",
    "wechat_id": "cyalv",
    "phone": "18580453534",
    "name": "徐涛",
    "index": 19
    }
    ]
    }

    c) 响应式数据

    可以模拟真实的接口一样,根据传入的参数不同获取对应的数据;

     

     使用postman访问接口;不加参数,加参数,错误的请求方式;

     

     

     

     

     easy mock快速生成数据字段,及常用语法;

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    {
          "cname""@cname",//中文人名
          "id""@id",//生成20 位数字
          "title""@ctitle",//中文title
          "city""@city",//中文城市
          "ip""@ip",//ip 地址
          "email""@email",//email
          "url""@url",//url
          "cfirst""@cfirst",//姓名,姓
          "clast""@clast",//姓名,名
          "cword""@cword('123456')",//123456 从中选取一个字符
          "csentence""@csentence(1,5)",//文字文段
          "csentence5""@csentence(5)",//文字文段
          "cparagraph""@cparagraph(1,3)",//文字文段
          "string""@string(11)",//输出11 个字符长度的字符串
          "float""@float(0,10)",//0 到 10 的浮点数
          "int""@integer(60,70)",//60 到 70 之间的整数
          "boolean""@boolean",//boolean 类型 true,false
          "array|1-3": [{
               "id""@integer(1,10)",//整数 1到10 取整数
               "name""cname"
          }],//数组(随机 1 到3个)
          "array_sort_add|+1": ["1""2""3"],//数组1,2,3轮询输出
          "boolean|1-2"true,//boolean 类型 true,false
          "actionType|1": ['click_url''open_resource_detail''open_resource_search'],
          "payload"function() {
               var returnClickUrl = {
                    "linkUrl""http://tob.zhisland.com/apph5"
                };
               var returnResourceDetail = {
                   "resourceId""606"
               };
               var returnResourceSearch = {
                   "keyWords""",
                   "tagCategory""1",
                   "tag""1"
               };
              var s = this.actionType == 'click_url' ? returnClickUrl : this.actionType == 'open_resource_detail' ? returnResourceDetail : returnResourceSearch;
              return s;

    预期返回如下数据;

    方式一、使用easymock构造;

     方式二、使用jmeter的 beanshell sampler;运行该请求,查看‘察看结果树’;

    越努力,越幸运!!! good good study,day day up!!!
  • 相关阅读:
    看到一个很好看的细细的字体
    meta标签常用属性整理
    网页字体排印指南
    利用伪元素仿苹果手机官网导航
    利用css3-animation来制作逐帧动画
    CSS实现垂直居中的5种方法
    前端网站
    icon font
    flexbox布局总结
    Yahoo(YUI) CSS Reset:
  • 原文地址:https://www.cnblogs.com/canglongdao/p/12551978.html
Copyright © 2011-2022 走看看