MockServer之moco-runner

  • MockServer
    • mock是什么
    • mock 使用场景
  • Mock Server框架 moco
    • moco框架介绍及运行
    • 配置https服务

MockServer

MockServer是一种模拟真实服务器行为的虚拟服务器。它用于测试目的,使开发人员能够在不使用真实服务器的情况下测试其应用程序的功能。

mock是什么

对于某些不容易构造或者不容易获取比较复杂的对象,可以采用虚拟的对象(mock对象)来创建以便测试的测试方法

mock 使用场景

为什么要使用mock呢?

  1. 单元测试中使用
    比如我们要mock某个方法,如果其他方法调它是我们直接返回一个mock的。

  2. 客户端测试过程中
    比如服务端没开发完成,我们就可以mock这样的接口出来。还有就是功能测试过程中有一些异常场景我们也可以mock来实现造数据。

  3. 某三方接口所有方法都需要Mock
    比如支付系统中需要异步调取第三方支付来获取结果,在测试过程中就可以mock第三方接口模拟成功或者失败的场景。

Mock Server框架 moco

Moco 是一个简单搭建 stub 的框架,主要用于测试和集成。Moco本身支持API和独立运行两种方式。通过使用API,开发人员可以在JUnit、JBehave等测试测试框架里使用Moco,极大程度地降低了集成点测试的复杂度

Moco可以提供以下服务:

支持http、https、socket;
支持设置headers、cookies、statuscode;
支持GET、POST、PUT、DELETE请求;
只需JRE环境即可运行;
支持热更新;
支持json、xml、text、file数据格式;
能与JUnit、Maven、Gradle集成。

本文旨在介绍Moco独立运行的方式如何搭建和使用

moco框架介绍及运行

环境说明:
需先安装JDK并配置环境变量。
moco下载地址: https://repo1.maven.org/maven2/com/github/dreamhead/moco-runner/1.1.0/

如下图所示:

mock目录结构

C:\moco-runner\├─moco-runner-1.1.0-standalone.jar└─moco.json

在本地新建moco-runner文件夹,将下载好的moco-runner-1.1.0-standalone.jar放入文件夹,然后新建moco.json配置文件。

[{"description": "这是我们的运行demo","request": {"uri": "/demo"},"response": {"text": "第一个moco框架demo"}}
]

字段说明:
description是描述
request是请求
uri是请求路径
response是返回结果
text是返回的是文本类型内容

moco启动服务

java -jar  ./moco-runner-1.1.0-standalone.jar 协议类型 -p 端口号 -c json配置文件

参数说明:
java -jar 是启动jar文件命令
http -p 是访问协议和访问端口号
-c 是模拟的接口文件

配置https服务

生成https证书文件

keytool -genkey -alias cps.cer -keyalg RSA -keystore C:\Users\chengpeisheng\.keystore\chengpeisheng.cer -keysize 1024
-validity 99999

参数说明:
-alias 别名,每个证书都要起自己独有的名字
-keyalg 如果是RSA算法,那么就是RSA
-keystore 填写完整的keystore文件保存路径已经文件名
-keysize 密钥长度,一般1024
-validity 有效天数

之后会让输入 密钥库的密码,连续输入两遍,填写 项目,姓名,组织机构,城市等等,最后会要求输入 证书 的密码
如下图所示:

JKS密钥库使用专用命令再次尝试:

keytool -importkeystore -srckeystore C:\Users\chengpeisheng\.keystore\chengpeisheng.cer -destkeystore C:\Users\chengpeisheng\.keystore\chengpeisheng.cer -deststoretype pkcs12

如下图所示:

这样证书就生成成功,可以去目录查看。操作如下:

启动https服务
进入moco-runner-1.0.0-standalone.jar所在目录,然后进入cmd 界面,输入启动https服务的命令

java -jar moco-runner-1.0.0-standalone.jar https -p 443 -c api_config.json --https C:\Users\chengpeisheng\.keystore\chengpeisheng.cer --cert 528938 --keystore 528938

命令解释:

【443】https服务默认开启的是443端口
【C:\Users\chengpeisheng.keystore\chengpeisheng.cer】cer证书所在路径
【 --cert 528938】密钥库的密码
【–keystore 528938】证书/密钥的密码
配置本地hosts文件

然后在本地的hosts文件里设置本地ip对应的域名

本文配置https服务部分参考文章:https://blog.csdn.net/CPS1016347441/article/details/102154691

Mock神器之Moco使用操作相关推荐

  1. oracle aul 索引,ORACLE恢復神器之ODU/AUL/DUL

    分享ORACLE數據庫恢復神器之ODU.DUL和AUL工具. ODU:ORACLE DATABASE UNLOADER DUL:DATA UNLOADER AUL:也稱MyDUL 關於三種工具說明: ...

  2. pyquery获取不到网页完整源代码_爬虫神器之PyQuery实用教程(二),50行代码爬取穷游网...

    爬虫神器之PyQuery实用教程(二),50行代码爬取穷游网 前言 上篇文章 PyQuery (一) 回顾.今天来介绍具体 PyQuery 的使用方法. 穷游网目标与分析 开始之前,按照之前的套路一步 ...

  3. 渗透测试神器之metasploit

    渗透测试神器之metasploit metasploit是什么? msf是一款开源安全漏洞利用和测试工具,继承了各种平台上常见的溢出漏洞和流行的shellcode,并持续保持更新. metasploi ...

  4. oracle数据库恢复aul_ORACLE恢复神器之ODU/AUL/DUL

    分享ORACLE数据库恢复神器之ODU.DUL和AUL工具. ODU:ORACLE DATABASE UNLOADER DUL:DATA UNLOADER AUL:也称MyDUL 关于三种工具说明: ...

  5. Mock工具之Moco使用教程

    目录 一.什么是Moco 二.安装&配置 三.接口配置&测试 3.1 第一个简单的请求: 3.2 Get请求: 3.3 Post请求: 3.4 返回值为Json格式的请求: 3.5 带 ...

  6. APP稳定性测试神器之Monkey-随机事件测试

    APP稳定性测试神器之Monkey-随机事件测试 Monkey是Android中的一个命令行工具,可以运行在模拟器里或者现实设备中,向系统发送伪随机的用户事件流(点击.滑动.Application切换 ...

  7. python pyquery不规则数据的抓取_爬虫神器之PyQuery实用教程(二),50行代码爬取穷游网...

    爬虫神器之PyQuery实用教程(二),50行代码爬取穷游网 前言 上篇文章 PyQuery (一) 回顾.今天来介绍具体 PyQuery 的使用方法. 穷游网目标与分析 开始之前,按照之前的套路一步 ...

  8. shell脚本编程神器之awk语法案例详解

    AWK入门指南 文章目录 shell脚本编程神器之awk语法案例详解 安装AWK AWK 起步示例 AWK程序的结构 执行 awk 程序 awk 的错误提示 简单输出 打印每一行 打印特定行 NF,字 ...

  9. 企业知识分享+团队协作神器之Confluence

    目录​​​ 一.Confluence简介 二.知识库软件对比 三.快速安装confluence 7.4.6版本 四.confluence基本操作简介 4.1.创建空间(Space) 4.2.配置空间权 ...

最新文章

  1. Camera开发系列之六-使用mina框架实现视频推流
  2. linux sa 命令,Linux 常用命令全拼
  3. 暴力子字符串查找算法
  4. 源代码下载 第六章 注解式控制器详解
  5. 【Pytorch神经网络基础理论篇】 08 Softmax 回归 + 损失函数 + 图片分类数据集
  6. Unity3d--跨平台(一)
  7. @符号的几种用法总结
  8. java socket 简书_Java之Socket编程入门篇
  9. sublime配置python开发环境_【教程】把Sublime Text 2用作Python的IDE去实现Python的开发...
  10. 电赛练习之旋转倒立摆
  11. 【第158期】游戏策划:给@zhang的简历分析
  12. loading等待载入正在加载的动画GIF图片圆形图标
  13. html select 默认不选,解决设置select默认选中不生效的方法
  14. 自定义validator
  15. Web服务器配置管理
  16. iOS开发之千呼万唤始出来iOS10更新内容以及iOS 10的闪退问题解决
  17. CSP-S 蒟蒻啊qaq
  18. 技术分享 | 基于 Alertmanager 告警系统的改造
  19. 网页批量更新快照软件-百度快照更新优化
  20. 王道考研 操作系统知识点汇总(目录+思维导图)

热门文章

  1. gitee与github使用有感
  2. 打官司无非是为争取民企与国企平等保护、维护契约精神之战。
  3. IMX6开发板显示中文
  4. 玻璃温室大棚设计及配套系统
  5. conda显示虚拟环境_conda虚拟环境
  6. 正则表达式——re.match方法
  7. 出去走走,你眼中的他(她)或许会有所不同
  8. 阿里云 短信服务——开启验证码防盗刷监控
  9. 2565: 添加负号 python
  10. 哪些公认的健康食品其实并非那么健康?为什么?