從事FPGA開發(fā)無論是仿真還是上板驗證,總少不了各種各樣的case遍歷,手動執(zhí)行起來就太麻煩了。尤其像從事FPGA加速行業(yè)來說,CPU與FPGA版卡的交互和測試基本基于PCIe來實現(xiàn),而軟件有大量的測試框架,不妨“軟為硬用”。這里就基于python的自動化測試框架unittest來實現(xiàn)一個簡單的自動化上板測試流程,同時自動生成html測試報告。
unittest
unittest是python自帶的測試框架,其主要由TestCase、unitunittest、TestRunner三大部分,詳細的介紹可參考該文檔鏈接。
通過unittest,可以很快的實現(xiàn)一個自動化測試的case集,如下簡單的demo:
html report
unittest的測試結果除了控制臺輸出外也可以存儲至文件中,但相對來講始終不如html報告更清晰些。這里采用HTMLTestRunner來實現(xiàn),其為開源源代碼,可通過下面的鏈接獲?。?/p>
將HTMLTestRunner.py下載下來后即可以將代碼保存在python的lib庫中,也可以放在測試代碼的工程目錄下面。如果想放在python的lib庫中,可通過在命令行下按照下面的方式找到python的lib目錄:
IT-C02YV1UELVDL:chain xxx$ python
Python 2.7.10 (default, Aug 17 2018, 19:45:58)
[GCC 4.2.1 Compatible Apple LLVM 10.0.0 (clang-1000.0.42)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
> import sys
> print(sys.path)
放在其打印輸出的任何一個目錄下即可。
其使用方式如下demo所示:
#!/usr/bin/python
# -*- coding: UTF-8 -*-
import unittest
import sys
from HTMLTestRunner import HTMLTestRunner
def add(data1,data2):
return data1+data2
class addTestCase(unittest.TestCase):
def test_add(self):
""" 加法器校驗 '"""
sum=add(1,2)
self.assertEqual(3,sum)
def test_add1(self):
""" 加法器校驗2 '"""
sum=add(3,4)
self.assertEqual(8,sum)
if __name__ == "__main__":
reload(sys)
sys.setdefaultencoding("utf-8")
suite=unittest.makeSuite(addTestCase,"test")
testlogName="./reeport.html"
fp=open(testlogName,'wb')
runner=HTMLTestRunner(fp,title="add test",description="test demo")
runner.run(suite)
fp.close()
值得注意的是第20行、21行用于解決下面的錯誤類型:
UnicodeDecodeError: 'ascii' codec can't decode byte 0xe5 in position 88: ordinal not in range(128)
最終會在執(zhí)行目錄下生成一個report.html的測試報告,可通過瀏覽器打開:
針對python3環(huán)境的使用,可通過下方閱讀原文方式來查看修改方式。
寫在最后
如果選用基于cocotb來進行代碼仿真,也可采用這種形式來生成自動化測試報告。
原文標題:“軟為硬用”—基于python的自動化測試
文章出處:【微信公眾號:FPGA之家】歡迎添加關注!文章轉載請注明出處。
審核編輯:湯梓紅
-
FPGA
+關注
關注
1645文章
22050瀏覽量
618502 -
自動化測試
+關注
關注
0文章
236瀏覽量
27340 -
python
+關注
關注
56文章
4827瀏覽量
86756
原文標題:“軟為硬用”—基于python的自動化測試
文章出處:【微信號:zhuyandz,微信公眾號:FPGA之家】歡迎添加關注!文章轉載請注明出處。
發(fā)布評論請先 登錄
鴻蒙OS開發(fā)實戰(zhàn):【自動化測試框架】使用指南

自動化測試框架思想和構建
HarmonyOS自動化測試框架—Hypium
HamronyOS自動化測試框架使用指南
全面提升自動化測試,NI TestStand 2012新模塊化框架
基于Web的自動化測試框架的研究

Python自動化測試框架有哪些?
什么是自動化測試框架?
OpenHarmony自動化測試框架開發(fā)指南

評論