自己曾經寫過一個接口自動化的框架,並做了一版本的優化,一直覺得做的還不錯,且沒依賴現有的框架。
最近因為一些工作的原因,開始又思考之前寫的框架的一些缺點及如何優化,所以找到比較有名的httprunner源碼來比較和學習下
1、httprunner 提供了比較便利的腳手架代碼及命令行運行方式
cli.py腳本里:
parser = argparse.ArgumentParser(description=__description__)
parser.add_argument
提供比較多的命令參數,去實現各種類型的操作
2、在運行用例和用例集的時候,依賴於unittest
api.py. _add_tests. -> _add_test - >run_test - > _run_test運行每個用例
其中的setuphooks , teardownhooks 用到了反射,可以實現對用例數據的動態處理
3、在將用例寫入到用例集里面的時候,用到了元編程
for testcase in testcases:
config = testcase.get("config", {})
test_runner = runner.Runner(config)
TestSequense = type('TestSequense', (unittest.TestCase,), {})
主要是為了將json維護的用於與unittest的testsuite, testrunner結合起來
4、對於用例、用例集的定義比較准確,保證了單個用例的可執行性
5、在支持單個接口的情況下,引入了locust,可以進行簡單的壓力測試
httprunner的代碼量並不算多,但還是有很多可以學習和借鑒的地方,很不錯的一個框架
繼續研究下源碼,希望以后寫一個更好的接口自動化框架或者針對自己的項目進行一定的改進。
