性能测试之Moco 作为MockServer快速入门

Android测试教程13--模拟服务器MockServer之Moco详细介绍 前面一篇介绍了如何用mockito来测试我们的一些异步任务,例如网络请求时候的异步回调。 现在做进一步的介绍,一个模拟我们的服务器的东东–moco先运行起来请先下载这个文件moco.jar,接着,在我们的桌面新建一个文件data.json,用记事本打开,粘贴下面的东东 ,具体意思后面介绍[{ "request" : { "uri" : "/hello" }, "response" : { "tex 阅读详情

Moco 作为MockServer快速入门

moco是个什么

一个简单搭建模拟服务器的程序库。

https://github.com/dreamhead/moco

moco 安装配置

  •  

    1、 下载jar

  • https://repo1.maven.org/maven2/com/github/dreamhead/moco-runner/0.11.0/moco-runner-0.11.0-standalone.jar

2、 编译运行

 

  • 配置java环境变量

  • 安装并配置Gradle(ref:http://www.gradle.org)

  • 然后获取源代码:https://github.com/dreamhead/moco

  • 进入代码目录, ./gradle build

  • 撰写json

     
  • 然后写好json后就可以启动了

     
  1. java-jar moco-runner-<version>-standalone.jar start-p12306-c foo.json

  2. [{"response":{"text":"Hello, Moco"}}]

然后就可以通过http://localhost:12306访问了

  •  

    3、进阶

     

  •  

    3.1 Content 根据request内容返回response

   [{

     "request":

       {

         "text":"foo"

       },

     "response":

       {

         "text":"bar"

       }

   }]

 

访问:http://localhost:12306

如果request内容太多,可以放到一个文件里面

       {

         "request" :

           {

             "file" : "foo.request"

           },

         "response" :

           {

             "text" : "bar"

           }

       }


​​​​

  • 3.2 配置文件

PS:Moco支持动态加载配置文件,所以无论你是修改还是添加配置文件都是不需要重启服务的

Moco支持在全局的配置文件中引入其他配置文件,这样就可以分服务定义配置文件

例如你有两个项目Boy和Girl项目需要使用同一个Mock Server,那么可以分别定义boy.json和girl.json配置文件,然后在全局文件中引入即可: 全局配置如下:


   [ { "context": "/boy", "include": "boy.json" }, { "context": "/girl", "include": "girl.json" } ]

在boy.json和girl.json中分别定义:

   //boy

   [ { "request" : { "uri" : "/hello" }, "response" : { "text" : "I am a boy." } } ]

   //girl

   [ { "request" : { "uri" : "/hello" }, "response" : { "text" : "I am a girl." } } ]


​​​​​

此时需要通过参数-g在加载全局配置文件(-g仅仅在3.1context章节使用)

java -jar moco-runner-<version>-standalone.jar start -p 12306 -g onecoder.json

启动成功后,我们分别通过http://localhost:12306/girl/hello 和 http://localhost:12306/boy/hello 访问服务,便可得到对应的reponse结果。 其实全局文件的引入方式还有直接include等,不过OneCoder觉得context这种方式应该比较常用,

Request参数

request里自然有很多带参数的,配置如下:

   [{ "request" : { "uri" : "/getBoy", "queries": { "name":"onecoder" } }, "response" : { "text" : "Hey." } }]

上述配置匹配的url即为:http://localhost:12306/getBoy?name=onecoder,返回值即为: Hey. 也就是说,使用这种方式你需要在开发期有固定的测试参数和参数值

对于rest风格的url,Moco支持正则匹配。

   [{ "request": { "uri": { "match": "/searchboy/\\w+" } }, "response": { "text": "Find a boy." } }]

此时,访问http://localhost:12306/searchboy/* 结尾加任何参数均可匹配到。

除了Get外,Post,Put,Delete等请求模式自然是支持的:
​​​​​

   [{

     "request" :

       {

         "method" : "post",

         "forms" :

           {

             "name" : "onecoder"

           }

       },

     "response" :

       {

         "text" : "Hi."

       }}]

对于Header、Cookies等请求信息的配置也是支持的。

  •  

    3.3 template 从0.8版本开始,Moco提供了template功能,可以动态的返回一些参数值。例如:

[

   {

   "request":{

           "uri":"/template"

                 },

   "response":{

         "text":{

             "template":"${req.queries['name']}"

             }

                   }

       }

]

 

 

此时通过url:http://localhost:12306/template?name=onecoder 访问,则会返回onecoder。 这样就可以通过template这种方式灵活的返回一些值。

  •  

    3.4 redirect

[{"request":{"uri":"/redirect"},"redirectTo":"http://www.coderli.com"}]

 

 

3.5 Asynchronous

[

   "request":{

       "uri":"/event"

   },

   "response":{

       "text":"event"

   },

   "on":{

       "complete":{

           "async":"true",

           "post":{

               "url":"http://another_siter",

               "content":"cintent"

           }

       }

   }

]

 

这样,对于/event的访问将会是异步的。要等到对http://another_siter访问结束后,才会将结果放到response里

  • 帮助网址

https://github.com/dreamhead/moco/blob/master/moco-doc/socket-apis.md https://github.com/dreamhead/moco/blob/master/moco-doc/rest-apis.md https://github.com/dreamhead/moco/blob/master/moco-doc/apis.md

 

PS: 原文MardDown格式下载

 

链接: https://pan.baidu.com/s/1zsx19iHQGYNarGo09G6PHw 密码: hnse

——————————————————

给大家推荐一个学习资料分享群(574253227),里面大牛已经为我们整理好了许多的学习资料,有自动化,接口,性能等等的学习资料!

Moco Runner使用说明 Moco Runner 前言 官方地址:https://github.com/dreamhead/moco/ 下载运行的jar包 常用命令行参数说明 官方文档地址: https://github.com/dreamhead/moco/blob/master/moco-doc/cmd.md 命令格式如下: java -jar moco-runner-1.1.0-standalone.jar http -p 8090 -c config.json 常用参数说明: http/https: 指定mock的通信协议 阅读详情

相关推荐

perfmock:性能测试mock,支持自定义mock文件和延时

perfmock 性能测试mock,支持自定义mock文件和延时 java -jar perfmock-0.0.1-SNAPSHOT.jar --mockfile=xxx.json --latency=1000,2000 json文件样例,结构为json数组: [ { "description": "testpost", "request" : { "uri" : "/testpost", "method" : "POST", "forms" : {"req" : "123"} }, "response" : { "latency" : 25, "json" : {"resultCode":"0000","redirectURL" : "null"} } }, { "description": "test", "request" : { "uri" : "/test", "queries"

Moco 作为MockServer快速入门

Moco 探索moco是个什么一个简单搭建模拟服务器的程序库ortools。https://github.com/dreamhead/moco moco 安装配置1、 下载jarhttps://repo1.maven.org/maven2/com/github/dreamhead/moco-runner/0.11.0/moco-runner-0.11.0-standalone.jar 2、 编译运行

Criss@陈磊 8994

基于文件通信的QMT量化交易信号桥接方案设计与实现

在量化交易系统开发中,进程间通信(IPC)是连接不同计算模块、实现策略逻辑与交易执行解耦的关键技术。其核心原理在于允许运行于独立环境或进程的程序安全、可靠地交换数据。文件系统通信作为一种经典的IPC方法,因其实现简单、跨平台兼容性好且数据可持久化,在非高频场景下具有重要技术价值。它尤其适用于需要将外部复杂计算环境(如配备丰富数据科学库的Python环境)与专用交易终端(如迅投QMT)集成的应用场景。通过约定文件路径与数据格式,外部程序可将包含交易指令的JSON信号文件写入特定目录,而交易终端通过轮询或监听机

weixin_28678151的博客 419

Moco框架的搭建使用

一、前言之前一直听mock,也大致了解mock的作用,但没有具体去了解过如何用工具或框架实现mock,以及也没有考虑过落实mock,因为在实际的工作中,很少会考虑用mock。最近在学java,刚好了解到moco框架是用于mock的,凑巧就实践一下基本的运用吧。二、Mock介绍Mock技术又叫测试桩、挡板,就是在测试过程中,对于某些不容易构造或者不容易获取的对象,用一个虚拟的对象来创建以便测试的测试方法。

YJT1002的博客 771

MIMIC-IV数据库中患者院内死亡的单因素生存分析

目的 由易到难,对mimic-iv的查询进行实际操作,体现先前文章中提到的mimic-iv数据查询的规律。 数据分析计划 死亡,是重症患者最重要的结局指标,在MIMIC数据库中收录了院内死亡的数据,以及进出ICU的时间(和进出医院的时间),所以我们可以获得是否死亡,以及从入ICU(或入院)到死亡发生之间的时间,有了这两个指标,我们可以通过Cox单因素(参数和非参数)模型来观察ICU(和医院)内死亡的趋势,以及某个变量(比如,性别和种族等)对死亡趋势的影响,以为后续的分析奠定基础。 数据的获取 我们需要数个变

skyskytotop的博客 3185

HP SPP download

是一个全面的系统软件和固件更新解决方案,以单个ISO映像的形式提供。该解决方案使用智能更新管理器(SUM)作为部署工具。

极致,细节 9862

请求行请求头请求体,MVC

Http请求 解耦:耦合是指两个或两个以上的体系或两种运动形式间通过相互作用而彼此影响以至联合起来的现象。 解耦就是用数学方法将两种运动分离开来处理问题,常用解耦方法就是忽略或简化对所研究问题影响较小 的一种运动,只分析主要的运动。 HTTP请求行、请求头、请求体小结 HTTP请求报文由3部分组成(请求行+请求头+请求体): 下面是一个实际的请求报文: 其中,1、2、3是请求行,分别是请求方法,资源名称,HTTP版本号,4是请求头,5是请求体 细说: ①是请求方法,GET和POST是最常见的HTTP方法

weixin_51103262的博客 738

国科大学习资料--图像处理(彭思龙、杨戈)--2020年期末考试题解析(学长整理分析)

在对20年卷子分析前,先看看19年卷子的解析(后面有20年的变化,由于从核心课调整到了普及课,20年的卷子相对简单,但是还是有很多细节) 解析:(字写的不好别嫌弃!!!!) 20年的卷子 第一题:和19年基本一致,但是加了高斯核计算费用,要算一个节省计算成本比率,所以去多看看PPT 第二题:和19年基本一致,加了证明两个高斯卷积仍然是高斯卷积,相当于19年题2和3结合 第三题:采样定理,和19年基本一致,但要注意加了证明 第四题:考了形态学提取图像边界 第五题:直方图,和19年一

无名何许人的博客 4364

使用python和moco框架搭建接口mock服务

Mock服务的作用   现今的业务系统很少有孤立存在的,它们或多或少需要使用兄弟团队或是其他公司提供的服务,给我们的联调和测试造成了麻烦。对于这种情况,我们常见的解决方案是搭建一个临时的server,模拟那些服务,提供数据进行联调和测试。这就是 mock server 出现原因。 应用场景 在前后端分离的项目中,假如后端代码还未开发完,前端代码需要调用后端接口进行调试,该怎么办? 本公司的电商平台需要对接第三方支付接口,如何测试支付失败的场景? 接口测试中Mock的用处 客户端/前端开发联.

adorable_的博客 1636

12、有杆泵抽油系统:原理、性能与选择

本文全面介绍了有杆泵抽油系统的原理、性能分析和设备选择方法。有杆泵抽油系统广泛应用于石油开采领域,通过地面抽油装置与井下柱塞泵的配合,实现高效、稳定的原油提升。文章详细解析了系统的工作原理、组成结构、光杆运动特性、载荷计算、泵输送能力及功率需求,并提供了抽油装置的选择流程和实际案例分析。此外,还探讨了泵的容积效率影响因素、示功图的作用及系统优化运行的建议,为石油开采工程提供了理论支持和实践指导。

gan8painter的博客 435

AI测试:手把手教你用AI创建流程图「喂饭教程」

本文介绍了如何利用next-ai-draw-io开源项目,通过AI快速生成专业流程图,提升测试工作效率。该工具支持自然语言交互,兼容多种AI模型(如OpenAI、Claude等),并集成draw.io图表引擎,实现实时编辑。

blues_C的博客 759

前端Vue发送多次同一个请求造成渲染问题

有时候在更新数据时需要向后台发送请求得到最新的数据,但如果发送请求频繁并且数据返回较慢的时候,可能会使得数据渲染出错。因此我们可以标记每个请求的顺序并计算总的请求数量,然后等待单个请求完成后判断其是否为最后一个请求,如果是,则取其数据。 data() { return { queryNum: 0, //标记最后一个请求 } } methods: { getData(){ this.queryNum++; var currentNum = this.queryNum; getData(

一个小小白的博客 2095

21、使用 FastHenry 进行片上电感器的模拟与参数预测

本文介绍了使用 FastHenry 对片上电感器进行模拟和参数预测的方法。讨论了 FastHenry 的适用场景、线圈几何形状的选择与离散化方法,以及如何考虑模拟中的寄生效应。同时对比了 FastHenry 和 Magnet 在不同基板电阻率下的模拟精度,并提出了优化电感器设计的策略,为高效准确地预测电感参数提供了技术指导。

y9z0a1b的博客 296

MockServer实战指南:从原理到应用,提升开发测试效率

在软件开发和测试领域,接口模拟(API Mocking)是一种关键技术实践,它通过创建虚拟的HTTP服务来模拟真实依赖的行为。其核心原理是拦截应用发出的网络请求,并根据预定义的规则返回预设的响应,从而实现对请求-响应周期的完全控制。这项技术的核心价值在于解耦开发流程,它允许前端、后端及测试团队在依赖方未就绪的情况下进行并行开发与测试,显著提升研发效率。在工程实践中,MockServer被广泛应用于前端联调、第三方服务异常模拟(如超时、5xx错误)、微服务集成测试、性能压测隔离以及API契约先行开发等场景。通

weixin_30595035的博客 376

电阻基础知识及应用电路仿真(Multisim)

本文围绕硬件工程师必备的电阻知识,从基础知识、实操、应用仿真三方面做系统讲解:基础上明确电阻的核心参数、分类、串并联计算及核心特性;实操中详解贴片/色环电阻的阻值读取、贴片封装换算,重点区分0Ω电阻(贴装跳线,实现功能选通/调试等)与磁珠(高频吸噪)的差异及选型;应用上介绍限流、分压、上拉/下拉、阻抗匹配、过压/过流保护五大典型电路的设计公式、选型原则和实操要点,同时给出电阻通用的选型、测量和布线设计规范,形成完整的电阻应用知识体系。

XU157303764的博客 2782

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

接口测试,后端接口还没开发完,如何测?解决看这一篇就够了......

在测试的时候经常会碰到后端开发工程师的接口还没有开发完成,但是测试任务已经分配过来。没有接口怎么测试呢?测试人员可以通过 mock server 自己去造一个接口来访问。mock server 可用于模拟真实的接口。收到请求时,它会根据配置返回对应的请求。在前后端分离的大背景下,mock server 在前端开发应用非广泛,也影响到测试人员。前端人员可以很快上手类似于 mock.js 这样的库,但是测试人员苦于没有编程功底,怎么办呢?实际上 postman 的 mock server 功能简单好用。

YLF123456789000的博客 528

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

接口测试与技术选型

一般所说的服务端是指为用户在 APP 或 PC 使用的互联网功能提供数据服务的背后的一切。以天猫精灵智能音箱系列的产品链路为例,服务端便是网关(包括网关在内)之后的链路。一般讲的接口测试指的是对某个给定接口进行功能测试,输入不同的参数时,接口返回值是否正确。下图是经典的测试金字塔模型。在这个模型中,越往下比例会占的越高,也就是说在一个产品测试中,单元测试比例是最高的,依次是接口测试和UI自动化测试,最顶端是人工测试部分。服务端接口测试在中部,承上启下,由此可见其重要性。

Jianyong_zhao的博客 273

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

Mock服务moco系列(一)- 简介、第一个Demo、Get请求、Post请求

目录 1、简介 2、下载 3、第一个Demo 3.1、配置文件 3.2、启动moco 3.3、访问moco 4、Get请求 5、Post请求 1、简介 1、什么是mock? mock翻译过来有模拟的意思。 2、什么是moco? moco是一个简单搭建的Stub框架。Stub可翻译为桩,指用来替换一部分功能的程序段。桩程序可以用来模拟已有程序的行为(比如一个远端机器的过程)或是对将要开发...

自动化软件测试 1250

30 | 程序库的设计:Moco是如何解决集成问题的?

今天,讲了 Moco 的设计过程。一个好的软件也好,程序库也罢,都是从实际的问题出发的。阻碍一个程序员写出好的程序库的原因,往往是没有找到一个好问题去解决。程序员不能只当一个问题的解决者,还应该经常抬头看路,做一个问题的发现者。有了问题之后,需要把问题拆解成可以下手解决的需求,让自己有一个更明确的目标。然后,我们才是根据这个需求找到一个适当的解决方案。一个通用的解决方案需要不断地抽丝剥茧,抛开无关的部分,找到核心的部分,这同样根植于分离关注点。

qq_37756660的博客 1035

Moco框架使用方法汇总

H1标题 沙发床哇擦 H2标题 阿萨我v H3标题 撒放v啊我饭 H2标题 阿萨我v H3标题 撒放v啊我饭 H3标题 撒放v啊我饭 H1标题 沙发床哇擦 H2标题 阿萨我v H3标题 撒放v啊我饭 H2标题 阿萨我v H3标题 撒放v啊我饭 H3标题 撒放v啊我饭 H1标题 沙发床哇擦 H2标题 阿萨我v H3标题 撒放v啊我饭 H2标...

凉拌西红柿 1264

Mock Server 之 moco-runner 使用指南一

文章出处http://ju.outofmemory.cn/entry/96866 用以下命令可以启动moco-runner 服务 java -jar moco-runner-&lt;version&gt;-standalone.jar start -p 12306 -c ***.json 其中12306是任意指定的端口号。foo.json是需要加载的配置文件名。&lt;version&gt; 是你...

weixin_33859504的博客 426

mock模拟接口测试_测试利器之Mock server

哈喽,艾瑞巴蒂,又在美好的周一和大家见面了,今天要和大家分享的是Mock server相关的知识,一大波知识来袭,请做好准备~什么是Mock server?Mock测试:就是在测试过程中,对于某些不容易构造或者 不容易获取的对象,用一个虚拟的对象来创建以便测试的测试方法。Mock对象:使用Mock Object进行测试,主要是用来模拟那些在应用中不容易构造(如HttpServletRe...

weixin_39883462的博客 1119

Mock服务moco系列(三)- 重定向、正则表达式、延迟、模板、事件、分模块设计

moco可以帮我们模拟重定向,将请求重定向到不同的url,可以模拟一些请求拦截、请求验证失败等情况。

自动化软件测试 1408

Moco框架初探

一、简介Moco是一个搭建模拟服务器的工具,其支持API和独立运行两种方式,前者通常在junit等测试框架中使用,后者则是通过运行一个jar包开启服务。二、用途主要用于实现mock技术1、后端接口开发未完成情况下,通过moco模拟接口,支持接口测试,可以使接口测试更加提前。2、后端接口开发未完成情况下,通过moco模拟接口,支持前端完成相关页面开发,包括移动端和web端前端页面实现。三、moco用于接口测试一般而言,在项目的接口文档输出之后,接口开发及接口测试用例设计是同时进行的,但往往接口测试用例设计会先

CeshirenTester的博客 347

moco的使用,moco测试前端页面、moco的启动、moco前端测试工具、moco的例子

moco的使用,moco测试前端页面、moco的启动、moco前端测试工具、moco的例子moco的介绍moco的启动moco例子注意不带参数的get请求 返回字符串带参数的get请求 返回json文件不带参 post 请求带参数的post请求post请求,(请求参数为json格式、请求带cookies)post请求带header请求重定向 moco的介绍 mock用来模拟接口,这里mock用的是......

李程程的博客 2380

接口自动化测试:mock server之Moco工具

mock:英文可以翻译为模仿的,mock server是我们用来解除依赖(耦合),假装实现的技术,比如说,前端需要使用某些api进行调试,但是服务端并没有开发完成这些api,那么前端的工作就被服务端阻塞了,那么就可以使用mock server假装实现这些api,能够返回特定的数据,帮助前端进行页面渲染,当然我们为了方便可以需要与服务端进行约定,约定接口的内容是什么。

软件自动化测试技术交流、资源分享 838
上一篇: 软件测试之诊断优化找出消耗CPU性能的内鬼
下一篇: 测试架构师不是一个没有明确定义的岗位
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值