用腳本自動化複雜測試場景#
透過 scripting 來自動化複雜的測試場景,有多種選擇:
- Unix shell:搭配
cURL抓取 URL、jq解析 JSON,適合編排 processes 和檔案操作 - 進階腳本語言:Python、Ruby、Perl,適合涉及 API 存取和狀態維護的複雜場景
- 內建腳本語言:許多系統自帶腳本支援,例如 Apache HTTP Server、Wireshark、VLC 都支援 Lua
為你的軟體加入腳本語言#
如果你的軟體不支援 scripting 但你能修改它,考慮嵌入一個腳本語言,並加入 API bindings 來暴露程式的功能。
範例:透過 Lua 測試 C 函式#
書中展示了一個實際範例——用 C 程式載入並執行 Lua 腳本,將 sin、cos、tan 三角函數暴露給 Lua,然後在 Lua 中撰寫測試程式驗證 tan(θ) = sin(θ) / cos(θ):
epsilon = 1
errors = 0
while epsilon > 0 and errors < 2 do
for theta = 0, 2 * math.pi, 0.1 do
diff = lsin(theta) / lcos(theta) - ltan(theta)
if (math.abs(diff) > epsilon) then
print(epsilon, theta, diff)
errors = errors + 1
end
end
epsilon = epsilon / 10
end在更實際的場景中,C 程式就是你的大型應用,暴露的函數是你需要測試的功能,而 Lua 腳本讓你輕鬆撰寫和調整測試案例。
重點回顧#
- 透過腳本語言自動化複雜測試案例的執行