iT邦幫忙

2022 iThome 鐵人賽

DAY 29
0
Software Development

Python 與自動化測試的敲門磚系列 第 29

Python 與自動化測試的敲門磚_Day29_Pytest 與併發測試

  • 分享至 

  • xImage
  •  

每天的專案會同步到 github 上,可以前往 這個網址 如果對於專案有興趣或是想討論一些問題,歡迎留言 OR 來信討論,信箱為:nickchen1998@gmail.com

當今天測試案例很多時,相對地就會拉長我們的測試時間,筆者這邊有找到一個套件叫做 pytest-xdist,可以協助我們將 pytest 用併發的方式進行測試,白話來說就是同時進行很多個測試,而不是一個測完才接著下一個

一、套件安裝

pip install pytest-xdist

or

poetry add pytest-xdist

二、建立測試程式

建立三個測試程式,並於每個測試案例內都進行等待五秒

from time import sleep


def test_case_1():
    sleep(5)


def test_case_2():
    sleep(5)


def test_case_3():
    sleep(5)

三、成果展示

  • 未使用併發測試時,可以看到測試總共花了 15 秒左右

    https://ithelp.ithome.com.tw/upload/images/20221012/20144024ajAWC5GLWn.jpg

  • 使用 pytest -n auto 表示要使用併發模式進行測試,可以看到測試時間只花了六秒鐘左右

    https://ithelp.ithome.com.tw/upload/images/20221012/20144024tFkdSWXzwv.jpg

四、警語

併發數量若使用 auto 會自動抓取電腦 CPU 核心數,來建立併發數量,一般建議使用 CPU 核心數 / 2 的併發數量來進行測試,可以透過 pytest -n <concurrency_amount> 來進行併發數量的設定,例如:pytest -n 3 ./day_29/test_demo.py


上一篇
Python 與自動化測試的敲門磚_Day28_Pytest 與客製化
下一篇
Python 與自動化測試的敲門磚_Day30_Pytest 測試輸出美化與隨機測試
系列文
Python 與自動化測試的敲門磚30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言