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接口测试实战 ...
随机推荐
- 一款基于 Android 开发的离线版的 MM 图片浏览 App
一款离线版的 MM 图片浏览 App,有点类似掌上百度的图片专栏应用.图片采用瀑布流展示方式,点击图片集,支持左右手势滑动切换图片:支持放大缩小功能. 实现功能:1)图片完全离线,不耗个人 GPRS ...
- mybatis-generator 的坑我都走了一遍
一.简介 mybatis-geneator是一款mybatis自动代码生成工具,可以通过配置,快速生成mapper和xml文件. 二.配置方法 在项目的pom文件中添加插件配置 <plugin& ...
- 安装MySQL后经常弹出taskeng.exe~
taskeng.exe,是Microsoft任务计划程序引擎调用的安全进程.文件路径为C:\Windows\system32\taskeng.exe.大小165KB. 解决办法: 这个问题是Wind ...
- dedecms 自增数使用方法
[field:global name=autoindex runphp="yes"]@me=@me+1;[/field:global] {dede:global name=item ...
- Present ViewController Modally (转)
一.主要用途 弹出模态ViewController是IOS变成中很有用的一个技术,UIKit提供的一些专门用于模态显示的ViewController,如UIImagePickerController等 ...
- C#------Aspose的License文件
Aspose官网: https://docs.aspose.com/display/cellsnet/Home 下载地址: http://vdisk.weibo.com/s/uoya0tRiZNf0X ...
- [AX2012]关于财务默认维度
和以前的版本一样,AX2012中很多地方都使用财务维度,比如客户.销售订单.销售订单行等,根据相应的财务维度设置,生成的相应财务分录将带有财务维度,方便后续对财务分录交易的分析.下图是在客户记录上设置 ...
- mysql存储引擎ARCHIVE
mysql常用引擎MyISAM和InnoDB,前者插入快 查询快,后者修改快 支持事务,各有优缺点,在网上突然看到一个引擎叫ARCHIVE,还蛮特别的 这个引擎只允许插入和查询,不允许修改和删除.相当 ...
- luasocket 接收数据
在游戏客户端使用luasocket作为网络通信的手段, 有一点很蛋疼, 就是它的receive是阻塞的, 那界面就卡死在那里了, 不过有一个函数:settimeout(), 传入参数0, 表示如果 ...
- RGB24转YUV420
BOOL RGB2YUV(LPBYTE RgbBuf, UINT nWidth, UINT nHeight, LPBYTE yuvBuf, unsigned long *len) { if (RgbB ...