小米众筹的手机 mocor5是什么操作系统

小米众筹的手机 mocor5是什么操作系统,第1张

Moco 是一个可以轻松搭建测试服务器的框架/工具/程序库,R5是系统版本号。

该框架还在 JavaOne 2013 大会上获过奖。 简单的说,Moco 是一个搭建模拟服务器的工具,其支持 API 和独立运行两种方式。

安装nginx

安装supervisor( 官方文档 )

安装uwsgi( 官方中文文档 )

启动服务

nginx 日志(默认)

supervisor 日志(默认)

supervisor 查看启动的进程

supervisor相关命令

一般配置文件在 /etc/nginx 目录下

全局配置文件为 nginxconf ,一般需要改的是下面两项,其他的保持默认就好了

我们要添加配置只需修改 sites-enabled/default

或在 confd/ 下面添加配置文件即可,因为在 nginxconf 中会导入这两个地方的配置文件

静态web服务器只需要有静态文件(html+css+js)和配置Nginx即可

假设我的静态文件在 /home/moco/www/html 目录下

接下来我们来配置nginx

这里为了简单,直接修改 sites-enabled/default

如果要同时配置多个呢?

说下root 和 alias的区别:

alias指定的目录就是要访问的目录,root是要访问目录的上级目录,使用root时,

静态文件的实际路径等于root+location的路径,如上面的第二个location,

站点文件必须在 /home/moco/other/tool/ 下, 而使用alias,则静态文件的路径

就是alias路径,即第三个location站点文件就在 home/moco/www/tool/ 下。

项目路径: /home/moco/www/myflask/

/home/moco/www/myflask/managepy

虚拟环境: /home/moco/local/share/virtualenvs/myflask-XuRgNXhR

在虚拟环境中安装 flask 和 uwsgi (pip install uwsgi)

在项目路径下创建uwsgi的配置文件(也可以统一在一个地方创建,如 /etc/uwsgi/ )

uwsgi_configini

启动虚拟环境中的uwsgi

配置Nginx 配置文件中的 sites-enabled/default

启动nginx

/home/moco/www/flask_hello/uwsgi_configini

/home/moco/www/flask_world/uwsgi_configini

因为要启动多个uwsgi的配置文件,这里就用supervisor工具统一启动管理

在 /etc/supervisor/confd/ 下分别添加

flask_helloconf

flask_worldconf

启动supervisor

Nginx配置

下面是flask_hello的访问示例:

作为动词,Mock 是模拟、模仿的意思。

作为名词,Mock 是能够模仿真实对象行为的模拟对象。

那么,在软件测试中,Mock 所模拟的对象是什么呢?

模拟的是 SUT(System Under Test:被测系统) 的依赖,而不是其本身。

比如,我要测试 A,但 A 依赖 B,要模拟的对象就是 B。

为什么要模拟 B 呢?

提高 A 的测试覆盖率: 通过 Mock 模拟 B 返回的正常和异常的结果,使用 A 的测试更充分。

避免 B 的因素对 A 产生影响: 当 B 因各种原因无法正常使用时,导致 A 无法测试。

提高 A 的测试效率: B 的真实行为可能很慢,但模拟可以很快。

Mock 的两大功能:

记录真实的调用信息

生成模拟的返回信息

使用 Mock 的问题是什么?

可能导致问题遗漏: 毕竟是模拟的,是理想可预见的情况,真实的情况可能更复杂。

可能导致维护成本变高: 接口变更 Mock 用例要跟着改,改错和漏改都可能出问题。

常见的 Mock 类型:

方法级别: Mock的对象是一个函数调用,例如:获取系统环境变量。

类级别: Mock 的对象是一个类,例如:一个 HTTP server。

接口级别: Mock 的对象是一个 API 接口。

服务级别: Mock 的对象是整个服务。

使用 Mock 做接口测试时,一般分二步:

1 打桩: 创建 Mock 桩,指定 API 请求内容及其映射的响应内容。

2 调桩: 被测服务来请求 Mock 桩并接收 Mock 响应。

在这二步之间还有一个 Mock 桩的注入 , 啥是 Mock 注入?

Mock 的本质就是用模拟桩来替换真实的依赖。所谓 Mock 桩注入 就是 阻断被测服务与真实服务之间的链路,建立被测服务与 Mock 之间的链路过程。

如下图所示:

常见的方式包括但不限于以下五种:

API 请求构造

客户端 Mock:在被测服务 内部 工作,直接拦截被测服务的 API 请求方法,直接从方法内部返回预定义的 Mock 响应。

服务端 Mock:在被测服务 外部 工作,作为 HTTP 服务器接收被测服务发送的 API 请求,并返回预定义的 Mock 响应。

本地配置:

对于服务端 Mock,打桩之后会生成唯一的 Mock 桩地址,被测服务提供一个依赖服务地址配置项,在需要使用 Mock 时将依赖服务地址修改成 Mock 地址。

配置中心

对于服务端 Mock,为了避免修改依赖服务地址配置项导致被测服务重启,可以采用配置中心存储和管理依赖服务地址配置,或者使用注册中心记录服务与服务地址的映射关系。

反向代理

在微服务架构下,被测服务与依赖服务之间可能不是直连的,而是经过了一层反向代理,例如 API 网关。在这种情况下,被测服务是通过调用 API 网关来间接调用依赖服务的接口。

前向代理

服务端 Mock 除了作为 HTTP 服务器,还可以兼备 HTTP 代理的功能,这种架构又叫做 Mock 代理。

对比:

常用 Mock 工具:

单元测试级别:

easymock、jMock、Mockito、Unitils Mock、PowerMock、JMockit

接口测试级别

Wiremock、Mockserver、Moco、Mockjs、RAP

Moco 是一个可以轻松搭建测试服务器的框架/工具/程序库,R5是系统版本号。

该框架还在 JavaOne 2013 大会上获过奖。 简单的说,Moco 是一个搭建模拟服务器的工具,其支持 API 和独立运行两种方式。

所以,可以下这个系统下下载并安装微信APP。

首先去github上下载moco的release版本,zip或者targz格式的都可以

解压出来是一个jar文件,随便命名个名字,我这里是mocojar,然后建立一个文件夹把mocojar复制进去,在根目录建立indexjson文件,里面填写

模拟服务器返回文本

[

{

"response" :

{

"text" : "Hello, World"

}

}

]

然后在命令行cd到你这个文件夹,执行

java -jar mocojar http -p 8888 -c indexjson

停止服务器ctrl+c,下面这些配置建议大家配置后看下终端有没有报错,有就先停止服务再启动

现在打开浏览器访问http://localhost:8888你就能看到经典的Hello, World了。

模拟服务器返回json

moco也能模拟服务器返回json数据,将indexjson文件改为

[

{"response" :

{"json" :

{ "name" : "tiantengfei"}

}

}

]

这是刷新浏览器服务器端返回{"name":"tiantengfei"};

模拟数组,数组里是json

moco还能模拟服务器返回数组,将indexjson文件改为

[

{"response" :

{"json" :

[

{ "name1" : "tiantengfei"}, {"name2" : "wanghua"}

]

}

}

]

刷新浏览器返回[{"name1":"tiantengfei"},{"name2":"wanghua"}]

返回文件

moco也支持返回文件,能够返回文件,我们就能够返回很多种数据,只要在文件中写好就行了。如果闲上面的写法太累,只需要把返回内容写在本目录一个文件,返回这个文件就可以了。

例如我在本地建立一个testjson文件

{

"status" : 0,

"data" :

[

{"revocation":1}

]

}

然后在indexjson文件中写

[

{"response" : {"file" : "testjson"}}

]

然后刷新服务器,就会返回testjson文件中的内容,以后再testjson写xml也可以

模拟请求路径

说了说返回,再来说说怎么模拟请求路径吧。很简单,配置request就可以了

[

{

"request" :

{

"uri" : "/test"

},

"response" :

{

"file" : "testjson"

}

}

]

访问http://localhost:8888/test就会看到testjso里面的内容了。

设置请求参数

moco也可以模拟请求http的请求参数

在indexjson中配置

[

{

"request" :

{

"uri" : "/test",

"queries" :

{

"name" : "tiantengfei"

}

},

"response" :

{

"file" : "testjson"

}

}

]

浏览器输入http://localhost:8888/testname=tiantengfei回车就会出现testjson的内容了。

包含json文件

moco也支持一个json文件中请求另外一个json文件

将indexjson文件改为

[

{"context" : "/test", "include" : "testjson"}

]

然后testjson文件为

[

{ "request" : { "uri" : "/getStatus"}, "response" : { "json" : [{ "status" : "true" }]}},

]

注意这个时候要使用的启动服务的命令也不一样了

java -jar mocojar http -p 8888 -g indexjso

DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
网站模板库 » 小米众筹的手机 mocor5是什么操作系统

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情