1. 程式人生 > 其它 >獲取使用者IP並限制時間內訪問次數

獲取使用者IP並限制時間內訪問次數

DDT(Data Driver Test)資料驅動測試,是由測試資料來驅動測試用例的執行;DDT可以實現用例的重複執行以及程式碼的重複使用,減少工作量。資料程式碼分離為主流設計思路,在常見的測試體系中可以使用xml檔案、excel檔案、json檔案來管理測試資料;通過程式碼自動讀取,來驅動用例的執行,ddt測試框架基於這種設計思路上,實現了方便使用,簡單易懂的效果。

下載

pip install ddt==1.3.1
pip install -i https://pypi.doubanio.com/simple ddt==1.3.1

在unittest中的應用

import unittest
import ddt
import requests

data_list = [
    {"url": "https://cnodejs.org/api/v1/topics", "method": "get"},
    {"url": "https://cnodejs.org/api/v1/topic/5433d5e4e737cbe96dcef312", "method": "get"},
    {"url": "https://cnodejs.org/api/v1/topic_collect/collect", "method": "post"},
    {"url": "https://cnodejs.org/api/v1/topic_collect/de_collect", "method": "post"},
    {"url": "https://cnodejs.org/api/v1/user/alsotang", "method": "get"},
    {"url": "https://cnodejs.org/api/v1/message/mark_all", "method": "post"},
]


@ddt.ddt
class MyCase(unittest.TestCase):

    def get_response(self, item):
        return requests.request(method=item['method'], url=item['url'])

    @ddt.data(*data_list)
    def test_case_01(self, item):
        response = self.get_response(item)
        self.assertEqual(response.status_code, 200)


if __name__ == '__main__':
    unittest.main(verbosity=2)

如上示例,我們從Excel或者其他文字中獲取到的資料是data_list型別,那麼在做資料驅動的時候,就可以通過如上示例的操作來完成資料驅動測試。