[Python]視窗軟件的自動化測試工具_pyautogui

[python]視窗軟件的自動化測試工具

軟件測試是確認軟件質量的重要流程之一,一般藉由撰寫自動化測試程序來實現。視窗程式的自動化測試原理也很容易,其利用螢幕像素點作為定位參考,並以程式碼使滑鼠和鍵盤做動,如點擊或輸入文字等動作,使其可模擬人類操作視窗程式,最後自動化執行上千次或上萬次,以確保程式的可靠性。

本文以一個簡易完成後的連結數據庫的視窗程式為範例,並利用pyautogui簡易編寫的部分自動化程式碼來做說明,其中包含連接和斷開資料庫,以及添加數據於datagridview表格的動作。其中幾個重點摘要如下,對應視頻做動的完整源碼,可參考下方代碼段。

1.動作之間的時間需要預留時間間隔緩衝,避免程式邏輯雖然沒有問題,但測試過程中會出現非預期錯誤。

2.建議加上"pyautogui.FAILSAFE = True",方便用於代碼debug的程序中斷測試。

3.pyperclip的用途為補足無法輸入中文字,可再自行搜尋其用法,增加視窗測試的彈性。

import pyautogui
import pyperclip

#故障保險
pyautogui.PAUSE = 1
#當故障安全模式
pyautogui.FAILSAFE = True


for i in range(2):
    # button location "connect DB"=>(1446,129)
    pyautogui.moveTo(1446, 129, 0.5)
    pyautogui.click(button='left')
    # button location "disconnect DB"=>(1618,127)
    pyautogui.moveTo(1618, 127, 0.5)
    pyautogui.click(button='left')
    # button location "connect DB"=>(1446,129)
    pyautogui.moveTo(1446, 129, 0.5)
    pyautogui.click(button='left')

    # button location "add data"=>(1451,611)
    pyautogui.moveTo(1451, 611, 1)
    pyautogui.click(button='left')
    # nondata and renew requirement confirm add button=>(2163, 449)
    pyautogui.click(x=2163, y=449, button='left')

    # txtbox location "品號"=>(1509,216)
    pyautogui.click(x=1509, y=216, button='left')
    pyautogui.write('989B', interval=0.1)

    # txtbox location "品名"=>(1510,288)
    pyautogui.click(x=1510, y=288, button='left')
    pyperclip.copy('肯亞 AAA')  
    pyautogui.hotkey('Ctrl', 'v')

    # txtbox location "價格"=>(1515,358)
    pyautogui.click(x=1515, y=358, button='left')
    pyautogui.write('1000', interval=0.1)

    # txtbox location "客戶"=>(1511,428)
    pyautogui.click(x=1511, y=428, button='left')
    pyautogui.write('P33', interval=0.1)

    # button location "add data"=>(1451,611)
    pyautogui.moveTo(1451, 611, 1)
    pyautogui.click(button='left')
    # add data confirm "取消"button=>(2111, 452)
    pyautogui.click(x=2111, y=452, button='left')
    # button location "add data"=>(1451,611)
    pyautogui.moveTo(1451, 611, 1)
    pyautogui.click(button='left')
    # add data confirm "確定"button=>(2010, 451)
    pyautogui.click(x=2010, y=451, button='left')
    # "成功新增一筆資訊" button=>(2095 448)
    pyautogui.click(x=2095, y=448, button='left')

    # txtbox location "品號"=>(1509,216)
    pyautogui.click(x=1509, y=216, button='left')
    pyautogui.hotkey('Ctrl', 'a')
    pyautogui.press('backspace')

    # txtbox location "品名"=>(1510,288)
    pyautogui.click(x=1510, y=288, button='left')
    pyautogui.hotkey('Ctrl', 'a')
    pyautogui.press('backspace')

    # txtbox location "價格"=>(1515,358)
    pyautogui.click(x=1515, y=358, button='left')
    pyautogui.hotkey('Ctrl', 'a')
    pyautogui.press('backspace')

    # txtbox location "客戶"=>(1511,428)
    pyautogui.click(x=1511, y=428, button='left')
    pyautogui.hotkey('Ctrl', 'a')
    pyautogui.press('backspace')

    # button location "disconnect DB"=>(1618,127)
    pyautogui.moveTo(1618, 127, 1)
    pyautogui.click(button='left')

reference: pyautogui官方文檔

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值