背景
在實(shí)際的測(cè)試業(yè)務(wù)中,我們往往會(huì)遇到測(cè)試用例執(zhí)行時(shí)間比較長(zhǎng),大量的測(cè)試用例串行執(zhí)行的話,會(huì)使的整個(gè)測(cè)試周期變長(zhǎng),導(dǎo)致不能及時(shí)的反饋?zhàn)詣?dòng)化測(cè)試的結(jié)果。因此我們會(huì)想出幾種解決方案,來(lái)并行的執(zhí)行測(cè)試用例,加快自動(dòng)化測(cè)試時(shí)間。做到能夠及時(shí)的反饋測(cè)試結(jié)果。
設(shè)計(jì)方案
方案一:
測(cè)試用例分布式執(zhí)行,通過(guò)策略,將不同的測(cè)試用例,分發(fā)到不同的測(cè)試機(jī)上進(jìn)行執(zhí)行,然后收集測(cè)試結(jié)果,合并測(cè)試報(bào)告。
這里我們以web測(cè)試為例:

通過(guò)Hub節(jié)點(diǎn)中心,將不同的測(cè)試請(qǐng)求分發(fā)到合適的測(cè)試節(jié)點(diǎn)中去,實(shí)現(xiàn)測(cè)試的分布式執(zhí)行。
方案二:
在同一臺(tái)測(cè)試機(jī)上,啟動(dòng)不同的進(jìn)程,來(lái)分別執(zhí)行不同的測(cè)試用例,根據(jù)測(cè)試機(jī)的CPU核數(shù)確定啟動(dòng)的進(jìn)程數(shù),實(shí)現(xiàn)真正的并行執(zhí)行。
這里我們主要用到了開(kāi)源工具pabot來(lái)實(shí)現(xiàn)robot測(cè)試用例的并行執(zhí)行。

樣例
執(zhí)行下面這個(gè)簡(jiǎn)單的用例,了解并行執(zhí)行過(guò)程。
pip install -U robotframework-pabot==0.35
git clone https://github.com/wywincl/example-for-pabot.git
cd example-for-robot && pabot --processes 5 topsuite
輸出
ubuntu2@ubuntu2-PowerEdge-R410:~/tmp/example-for-pabot$ pabot --processes 5 topsuite
2017-01-05 15:48:13.683078 [PID:30072] [3] EXECUTING Topsuite.Testsuite2-測(cè)試2
2017-01-05 15:48:13.690442 [PID:30075] [4] EXECUTING Topsuite.Testsuite3
2017-01-05 15:48:13.689776 [PID:30073] [1] EXECUTING Topsuite.2Suite.Testsuite5-測(cè)試5
2017-01-05 15:48:13.696798 [PID:30079] [0] EXECUTING Topsuite.2Suite.Testsuite4
2017-01-05 15:48:13.978538 [PID:30077] [2] EXECUTING Topsuite.Testsuite1
2017-01-05 15:48:14.079019 [PID:30077] [2] PASSED Topsuite.Testsuite1 in 0.1 seconds
2017-01-05 15:48:14.089794 [PID:30072] [3] PASSED Topsuite.Testsuite2-測(cè)試2 in 0.4 seconds
2017-01-05 15:48:14.091765 [PID:30075] [4] PASSED Topsuite.Testsuite3 in 0.4 seconds
2017-01-05 15:48:14.094498 [PID:30073] [1] PASSED Topsuite.2Suite.Testsuite5-測(cè)試5 in 0.4 seconds
2017-01-05 15:48:14.098067 [PID:30079] [0] PASSED Topsuite.2Suite.Testsuite4 in 0.4 seconds
Output: /home/ubuntu2/tmp/example-for-pabot/output.xml
Log: /home/ubuntu2/tmp/example-for-pabot/log.html
Report: /home/ubuntu2/tmp/example-for-pabot/report.html
Elapsed time: 0 minutes 0.664 seconds
小結(jié)
結(jié)合Jenkins+docker技術(shù),我們可以很方便的基于上面的兩套方案,打造分布式并行自動(dòng)化測(cè)試集群。
備注
Does not Support Other Unicode Character Like Chinese Character. 中文支持問(wèn)題已經(jīng)解決了。