一、搭建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搭建及接口测试简单实例的更多相关文章

  1. (Hibernate进阶)Hibernate搭建开发环境+简单实例(二)

    hibernate是非常典型的持久层框架,持久化的思想是非常值得我们学习和研究的.这篇博文,我们主要以实例的形式学习Hibernate,不深究Hibernate的思想和原理,否则,一味追求,苦学思想和 ...

  2. 【SSH进阶之路】Hibernate搭建开发环境+简单实例(二)

    Hibernate是很典型的持久层框架,持久化的思想是很值得我们学习和研究的.这篇博文,我们主要以实例的形式学习Hibernate,不深究Hibernate的思想和原理,否则,一味追求,苦学思想和原理 ...

  3. vue mock(模拟后台数据) +axios 简单实例(二)

    需装上axios,build文件夹中webpack.dev.conf.js文件添加上vue mock配置的东东,  如,继(一) //组件<template> <div> &l ...

  4. vue mock(模拟后台数据) 最简单实例(一)——适合小白

    开发是前后端分离,不需要等待后台开发.前端自己模拟数据,经本人测试成功. 我们在根目录新建存放数据的json文件,存放我们的数据data.json //data.json{ "status& ...

  5. 基于moco的mock server 简单应用 来玩玩吧

    提起mock大家应该就知道是干嘛用的了,再次再介绍一种简单的方式,基于moco的mock server.步骤很简单: 1. 首先,要下载个moco的jar0_1482402640757_moco-ru ...

  6. MySQL搭建系列之多实例

    所谓多实例.就是在一台server上搭建.执行多个MySQL实例,每一个实例使用不同的服务port.通过不同的socket监听:物理上,每一个实例拥有独立的參数配置文件及数据库. 通常情况下.一台se ...

  7. Fiddler-009-AutoResponder 简单的 MOCK SERVER 应用实例

    在我们日常的测试中经常需要测试特定的响应对应的客户端展示样式是否正确无误,实现测试方法一般有如下三种: 创建新的测试数据(工作量较大) 修改已有测试数据(例如修改对应的状态码,若是最终需要测试的按钮状 ...

  8. 搭建Mock Server

    1.为什么要搭建mock-server? 为了更好的分工合作,让前端能在不依赖后端环境的情况下进行开发,其中一种手段就是为前端开发者提供一个 web 容器,这个本地环境就是 mock-server. ...

  9. Python接口测试实战5(下) - RESTful、Web Service及Mock Server

    如有任何学习问题,可以添加作者微信:lockingfree 课程目录 Python接口测试实战1(上)- 接口测试理论 Python接口测试实战1(下)- 接口测试工具的使用 Python接口测试实战 ...

随机推荐

  1. vue-router2路由参数注意问题

    1.vue 路由 如果传递 params 定义路由的时候是 /路由名称:id 获取的时候 this.$route.params.id 最后形如 /路由名称/路由参数 传参的时候 params:{ st ...

  2. ML基础 : 训练集,验证集,测试集关系及划分 Relation and Devision among training set, validation set and testing set

    首先三个概念存在于 有监督学习的范畴 Training set: A set of examples used for learning, which is to fit the parameters ...

  3. Linux同时安装python2和Python3

    我们以Ubuntu 为例,默认地,Linux安装好后会默认安装python2版本: 安装Python3: For Debian:   [user@host]$ sudo apt-get install ...

  4. mysql5.7 启动报发生系统错误2

    1. http://dev.mysql.com/downloads/mysql/        下载mysql5.7   zip包 2. 下载好后解压文件,解压的内容如图,您可以把内容解压到想要的位置 ...

  5. oracle long类型转换成varchar2

    CREATE OR REPLACE FUNCTION LONG_TO_CHAR( in_rowid rowid,in_owner varchar,in_table_name varchar,in_co ...

  6. go搭建web服务

    https://github.com/astaxie/build-web-application-with-golang/blob/master/zh/preface.md

  7. python __all__用法

    主要是用来限定暴露的api a.py文件里面的内容 __all__ = ['major_fun'] def major_fun(): pass def assist_fun(): pass b.py ...

  8. 关于openssl的编译与使用

    关于openssl的编译与使用,可以参考这两往篇文章 http://blog.csdn.net/lazyclough/article/details/7456131 http://www.leaves ...

  9. 新版本的body-parser中间件和morgan中间件引用问题:body-parser deprecated bodyParser和morgan deprecated morgan(options)

    引用新版本的body-parser中间件和morgan中间件时,报如下问题: Fri, 09 Jan 2015 06:32:04 GMT morgan deprecated morgan(option ...

  10. Kafka与Flink集成

    Apache Flink是新一代的分布式流式数据处理框架,它统一的处理引擎既可以处理批数据(batch data)也可以处理流式数据(streaming data).在实际场景中,Flink利用Apa ...