大数跨境

mock + fidder如何应用在测试中

mock + fidder如何应用在测试中 慧测
2019-03-18
0
导读:mock + fidder如何应用在测试中


Mock的理解


(1)mock概念

在测试过程中,对于一些不容易构造/获取的对象,创建一个mock对象来模拟对象的行为

 

(2)常见的mock方式

将模拟数据直接写在代码里

利用 JavaScript 拦截请求

利用 Charles Fiddler 等代理工具拦截请求

正常来说,在开发阶段,尤其是联调之前,Mock经常被开发人员用来进行调试

 

(3)为什么说mock可以用在测试工作中呢?

在测试过程中,想直接检验纯前端或纯移动端功能时,但是服务端接口返回的数据很难制造,那么可以使用mock快速构造数据

 

(4)如何使用?

1. 生成Mock服务端接口(Easy Mock可使用在线,也可自行搭建,建议自行搭建

2. 抓包工具fiddler 拦截请求,替换返回数据

 


搭建Easy Mock


(1)环境准备

    linux环境(文章介绍的是centos7)


(2)安装软件

Node.js(v8.x)

wgethttp://nodejs.org/dist/v8.11.1/node-v8.11.1-linux-x64.tar.gz

tar -zxvfnode-v8.11.1-linux-x64.tar.gz

mvnode-v8.11.1-linux-x64 node

cd node/bin && ls

vim~/.bash_profile 

找到PATH=$PATH:$HOME/bin,在后面添加路径:/usr/local/src/node/binsource ~/.bash_profile

为npm添加淘宝镜像和cnpm

npm config set registryhttps://registry.npm.taobao.org

npm config get registry

npm install -g cnpm--registry=https://registry.npm.taobao.org

 

 MongoDB(>= v3.4)

下载地址:https://www.mongodb.com/downloadcenter/community

安装网络组件

yum install net-tools

创建文件夹

cd /usr/local/ 

mkdir mongodb

解压:tar -xzvf mongodb-linux-x86_64-4.0.6.tgz

设置环境变量:

vi /etc/profile

exportMONGODB_HOME=/usr/local/mongodb 

export PATH=$PATH:$MONGODB_HOME/bin

source /etc/profile

创建数据库文件和日志

cd /usr/local/mongodb 

mkdir -pdata/db 

chmod -r 777 data/db

mkdir logs

cd logs 

touch mongodb.log

创建启动文件 

cd /usr/local/mongodb/bin touch mongodb.conf vimongodb.conf

在文件中插入如下内容

dbpath=/usr/local/mongodb/data/db #数据文件存放目录 logpath=/usr/local/mongodb/logs/mongodb.log #日志存放目录 port=27017 #端口 fork=true #以守护程序的方式启用,即在后台运行

启动数据库

cd /usr/local/mongodb/bin.

/mongod --config mongodb.conf

启动后,浏览器直接访问xxxx:27017,出现下图即安装成功

若发现只能本地连接不能远程连接:

将bind_ip = 127.0.0.1 改成 bind_ip =0.0.0.0

 

Redis(>=v4.0)

wget http://download.redis.io/releases/redis-4.0.6.tar.gz

tar -zxvf redis-4.0.6.tar.gz

yum install gcc

cd redis-4.0.6

make MALLOC=libc

cd src && make install

如何启动redis

修改redis.conf文件

将 daemonize no 修改为 daemonize yes

./redis-server/usr/local/redis-4.0.6/redis.conf

设置redis为开机启动

参考:https://www.cnblogs.com/zuidongfeng/p/8032505.html

mkdir redis

cp/usr/local/redis-4.0.6/redis.conf /etc/redis/6379.conf

cp/usr/local/redis-4.0.6/utils/redis_init_script /etc/init.d/redisd

chkconfig redisd on

service redisd start

 

(3)下载项目

https://github.com/easy-mock/easy-mock

直接git下拉项目代码:

git clonehttps://github.com/easy-mock/easy-mock.git

若出现报错:SSL connect error

git config –globalhttp.sslversion tlsv1

下载成功后,进入/easy-mock

1. npminstall

若npm install总是报错:unable to verifythe first certificate

取消ssl验证:npm config set strict-sslfalse

2. 找到 config/default.json,配置可以自行修改

3. 启动

npm run build

npm run start

4. 使用 PM2 来守护你的应用进程

npm install pm2 -g

NODE_ENV=production pm2 start app.js

5. 浏览器打开 xxxx:7300就可以看到下图了

关于easy mock 怎么使用,可以参考:https://www.easy-mock.com/docs



使用Easy Mock,模拟接口返回数据

(1)根据Api文档,获取到某抽奖接口的返回格式如下:

{

"success": true,

"data": {

"coupon_code":"38120a",

"count":"1",

"msg":"Congratulations!You received one coupon!"

}

}

{

"success": false,

"data": {

"msg":"You haveget one coupon before!"

}

}

 

(2)本身抽奖获得的测试,就需要测抽奖接口和抽奖成功or失败的前端展示效果

假如前端展示有样式优化或问题等,需要单独验证时,那么就可以直接模拟成功或失败的数据

拦截接口后让前端显示对应的效果

但是本文没办法直接展示该效果(涉及内容接口),所以就以百度为例子

 

(3)创建项目--创建接口--编辑接口

左边复制接口返回的数据内容

右边填写url 和描述

点击保存即可

点击复制链接


浏览器打开链接,看到是可以返回需要的数据的



使用fiddler拦截接口,篡改返回数据


(1)fiddler--AutoResponder -- Add Rule


(2) 添加需要的拦截的接口


(3)开启拦截,把下方三个都勾选上


(4)尝试着打开百度,发现已经变成mock的接口了


看下百度页面是如何的,已经代理到mock的接口了

当然easy mock还可以设置随机返回的数据,支持RESTful





- END -



性能测试28期

3月23日(周六)正式开班!


测试开发五期

3月23日(周六)正式开班!


自动化测试16期

3月23日(周六)正式开班!



欢迎加入我们:

慧测官网:www.huicewang.com

慧测Python群:324015481

公开课服务群:623636110

咨询QQ:2657535456

咨询微信号:huice66



慧测腾讯课堂 课程地址



【声明】内容源于网络
0
0
慧测
专注人工智能前沿技术落地企业实战应用
内容 404
粉丝 0
慧测 专注人工智能前沿技术落地企业实战应用
总阅读104
粉丝0
内容404