mock server搭建及接口测试简单实例
一、搭建mock server
mock工具很多,这里我们选择用简单易操作的moco服务器
使用前必须先安装java,去相关网站下载Standalone Moco Runner
二、使用mock server
从最简单的hello world开始,使用json做为交互数据使用,编辑config.json为如下文件:
- [
- {
- "request" :
- {
- "uri" : "/hello"
- },
- "response" :
- {
- "text" : "World!"
- }
- }
- ]
启动mock server
- java -jar moco-runner-0.10.0-standalone.jar http -p 12888 -c config.json
三:验证
使用httpRequest相关发送get /hello,就会返回world
四:丰富接口后使用unittest、requests写的接口用例如下,包括了get、post、put和deletet接口,代码如下,有需要的可以参考:
- import unittest
- import requests
- import json
- class TestInterFace(unittest.TestCase):
- def setUp(self):
- #print "xxxx"
- self.domain='http://localhost:12888'
- self.json_headers={"content-type":'application/json'}
- print "before each test"
- def tearDown(self):
- print "End One Testcase"
- def test_get_all_posts(self):
- print "test get all posts"
- result=requests.get(self.url_test("/posts")).json()
- self.assertEqual(len(result),3)
- print len(result)
- self.assertEqual(result[0]['title'],'first post')
- #print 'xxx'
- self.assertEqual(result[0]['url'],'/posts/1')
- self.assertEqual(result[-1]['title'],'how to learn interface test')
- self.assertEqual(result[-1]['url'],'/posts/3')
- def test_get_first_post(self):
- print "test get first post"
- result=requests.get(self.url_test("/posts/1")).json()
- self.assertEqual(len(result),2)
- self.assertEqual(result['title'],'first post')
- self.assertEqual(result['content'],'this is my first post')
- def url_test(self,path):
- return self.domain + path
- def test_create_post(self):
- #headers={"content-type":'application/json'}
- json_data=json.dumps({"title": "new post","content": "new post"})
- result=requests.post(self.url_test('/posts'),data=json_data,headers=self.json_headers)
- print result.status_code
- print result.text
- self.assertEqual(result.status_code,200)
- self.assertEqual(result['sucess'],'true')
- def test_modify_post(self):
- headers={"content-type":'application/json'}
- json_data=json.dumps({"title": "new post","content": "new post"})
- result=requests.put(self.url_test('/posts/1'),data=json_data,headers=self.json_headers)
- print result.status_code
- print result.text
- self.assertEqual(result.status_code,200)
- #self.assertTrue
- def test_delete_post(self):
- headers={"content-type":'application/json'}
- json_data=json.dumps({"title": "new post","content": "new post"})
- result=requests.delete(self.url_test('/posts/2'))
- print result.status_code
- print result.text
- self.assertEqual(result.status_code,200)
- #self.assertTrue
- if __name__=='__main__':
- unittest.main()
mock server搭建及接口测试简单实例的更多相关文章
- (Hibernate进阶)Hibernate搭建开发环境+简单实例(二)
hibernate是非常典型的持久层框架,持久化的思想是非常值得我们学习和研究的.这篇博文,我们主要以实例的形式学习Hibernate,不深究Hibernate的思想和原理,否则,一味追求,苦学思想和 ...
- 【SSH进阶之路】Hibernate搭建开发环境+简单实例(二)
Hibernate是很典型的持久层框架,持久化的思想是很值得我们学习和研究的.这篇博文,我们主要以实例的形式学习Hibernate,不深究Hibernate的思想和原理,否则,一味追求,苦学思想和原理 ...
- vue mock(模拟后台数据) +axios 简单实例(二)
需装上axios,build文件夹中webpack.dev.conf.js文件添加上vue mock配置的东东, 如,继(一) //组件<template> <div> &l ...
- vue mock(模拟后台数据) 最简单实例(一)——适合小白
开发是前后端分离,不需要等待后台开发.前端自己模拟数据,经本人测试成功. 我们在根目录新建存放数据的json文件,存放我们的数据data.json //data.json{ "status& ...
- 基于moco的mock server 简单应用 来玩玩吧
提起mock大家应该就知道是干嘛用的了,再次再介绍一种简单的方式,基于moco的mock server.步骤很简单: 1. 首先,要下载个moco的jar0_1482402640757_moco-ru ...
- MySQL搭建系列之多实例
所谓多实例.就是在一台server上搭建.执行多个MySQL实例,每一个实例使用不同的服务port.通过不同的socket监听:物理上,每一个实例拥有独立的參数配置文件及数据库. 通常情况下.一台se ...
- Fiddler-009-AutoResponder 简单的 MOCK SERVER 应用实例
在我们日常的测试中经常需要测试特定的响应对应的客户端展示样式是否正确无误,实现测试方法一般有如下三种: 创建新的测试数据(工作量较大) 修改已有测试数据(例如修改对应的状态码,若是最终需要测试的按钮状 ...
- 搭建Mock Server
1.为什么要搭建mock-server? 为了更好的分工合作,让前端能在不依赖后端环境的情况下进行开发,其中一种手段就是为前端开发者提供一个 web 容器,这个本地环境就是 mock-server. ...
- Python接口测试实战5(下) - RESTful、Web Service及Mock Server
如有任何学习问题,可以添加作者微信:lockingfree 课程目录 Python接口测试实战1(上)- 接口测试理论 Python接口测试实战1(下)- 接口测试工具的使用 Python接口测试实战 ...
随机推荐
- 获取设备和 App 信息
设备对照表:https://www.theiphonewiki.com/wiki/Models 获取设备和 App 信息代码: NSLog(@"设备信息如下"); NSLog(@& ...
- SharePoint 2013 地址栏_layouts/15/start.aspx#
大家在使用SharePoint2013的时候是否发现,地址栏中显示的URL不再变得友好,多出这么一段“_layouts/15/start.aspx#”,怎么看怎么别扭. 如果要取消这段路径的显示,需要 ...
- ffmpeg把ts文件转m3u8并切片
Linux_x86_64流媒体环境:nginx + EasyDarwin-master 客户端播放器:VLC media player 下载windows下的ffmepg二进制版本,请进网站http: ...
- mongoose实现批量删除和多id查询的api/方法
删除一条数据:传入id Model.remove({ _id: 传入的id }); 删除多条数据,传入id数组,使用$in方法 Model.remove({ _id: { $in: ['aID', ' ...
- 视觉单词模型、词袋模型BoW
多用于图像检索.分类 3.2.1.4 视觉单词模型 视觉词袋(BoVW,Bag of Visual Words)模型,是“词袋”(BoW,Bag of Words)模型从自然语言处理与分析领域向图像处 ...
- A股最新的自由现金流和折现估值查询
A股最新的自由现金流折现估值,利用自由现金流折现的经典公式,采用 8%.9%.10%.11%.12%.15% 等贴现率来进行估值. SH600000:浦发银行的最新自由现金流和折现估值模型: 浦发银行 ...
- 探究Visual Studio生成的.vs文件夹内部结构和作用
https://shiyousan.com/post/636441130259624698 在某个契机的引发下,对VS解决方案中自动生成的.vs文件夹产生了兴趣,以前总对这个文件夹不怎么上心,最近正好 ...
- Java实现在复制文件时使用进度条
在对大文件操作时,可能会需要些时间,此时为用户提供进度条提示是非常常见的一项功能,这样用户就可以了解操作文件需要的时间信息.本实例为大家介绍了在复制大的文件时使用的进度条提示,需要注意的是,只有在读取 ...
- Git Step by Step – (7) Git远程仓库(续)
上一篇文章介绍了Git远程仓库的一些使用,但是还是有些东西需要补充一下,所以有了这个续篇. .gitignore 前一篇中,我们介绍了Git的patch功能,当我们生成patch之后,"gi ...
- MongoDB中的聚合操作
根据MongoDB的文档描述,在MongoDB的聚合操作中,有以下五个聚合命令. 其中,count.distinct和group会提供很基本的功能,至于其他的高级聚合功能(sum.average.ma ...