1、搭建mock serverjava
mock工具不少,這裏咱們選擇用簡單易操做的moco服務器json
使用前必須先安裝java,去相關網站下載Standalone Moco Runner服務器
2、使用mock serverapp
從最簡單的hello world開始,使用json作爲交互數據使用,編輯config.json爲以下文件:dom
[
{
"request" :
{
"uri" : "/hello"
},
"response" :
{
"text" : "World!"
}
}
]
啓動mock server工具
java -jar moco-runner-0.10.0-standalone.jar http -p 12888 -c config.json
三:驗證post
使用httpRequest相關發送get /hello,就會返回world網站
四:豐富接口後使用unittest、requests寫的接口用例以下,包括了get、post、put和deletet接口,代碼以下,有須要的能夠參考:this
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()