• 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()
                    
  • 相关阅读:
    面试可能遇到的关联式容器(map、set等)相关问题
    C++学习 STL组件之vector部分总结
    C++ 菱形虚拟继承 与 指针偏移问题
    C++ 关键字 explicit 的使用
    C++ sort()排序函数用法
    C++ 字符流 stringstream
    C/C++ 每日一题
    C/C++ 超长正整数相加
    C++ 二叉搜索树原理及其实现
    Tomcat安装
  • 原文地址:https://www.cnblogs.com/landhu/p/5385746.html
Copyright © 2020-2023  润新知