日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網(wǎng)為廣大站長提供免費(fèi)收錄網(wǎng)站服務(wù),提交前請做好本站友鏈:【 網(wǎng)站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(wù)(50元/站),

點(diǎn)擊這里在線咨詢客服
新站提交
  • 網(wǎng)站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

寫在前面


上個星期分享了《基于Sikuli GUI圖像識別框架的PC客戶端自動化測試實(shí)踐》,但sikuli看起來怎么都像是上個世紀(jì)的界面風(fēng)格,且功能過于簡陋。而同樣基于圖像識別框架的Airtest,則無疑強(qiáng)大了許多,本次分享的內(nèi)容是基于Airtest實(shí)現(xiàn)windows應(yīng)用的自動化測試,內(nèi)容大綱:

  • Airtest框架介紹:Airtest適用項(xiàng)目、Airtest特點(diǎn)、Airtest的優(yōu)勢
  • Airtest框架組成、原理
  • Airtest環(huán)境搭建及IDE的簡單使用
  • Airtest開展Windows應(yīng)用自動化測試實(shí)踐:連接Windows應(yīng)用、Windows常用API、編寫測試代碼、設(shè)計(jì)測試用例、運(yùn)行效果、查看測試報(bào)告、總結(jié)與思考

 

一、Airtest框架介紹

1.Airtest介紹

Airtest是網(wǎng)易出品的一款基于圖像識別和Poco控件識別的一款UI自動化測試工具。這個框架設(shè)計(jì)來源于新穎的圖形腳本語言Sikuli,關(guān)于Sikuli框架可見上一篇分享《基于Sikuli GUI圖像識別框架的PC客戶端自動化測試實(shí)踐》。和Sikuli框架的原理一樣,用戶不需要一行行的去寫代碼,而是用屏幕截屏的方式,用截出來的圖形擺列組合成神器的程序,這是Airtest的一部分。另外,Airtest也可以基于poco這個UI控件搜索框架,通過控件的名稱、id之類的來定位目標(biāo)控件,原理類似于 Appium。官網(wǎng):
http://airtest.NETease.com/

 

2.Airtest適用項(xiàng)目

  • 游戲
  • Android
  • IOS
  • Web
  • Windows
基于圖像識別框架Airtest的Windows項(xiàng)目自動化測試實(shí)踐

 

3.Airtest特點(diǎn)

  • 跨平臺
  • 易操作
  • 可擴(kuò)展
  • 支持GUI編輯器

 

4.Airtest的優(yōu)勢

相比于其他的自動化測試框架,Airtest主要有如下兩個優(yōu)勢:

  • 大幅度降低自動化腳本的編寫和維護(hù)成本
基于圖像識別框架Airtest的Windows項(xiàng)目自動化測試實(shí)踐

 

  • 解決游戲測試的痛點(diǎn)

 

二、Airtest框架組成、原理

1.Airtest框架組成

基于圖像識別框架Airtest的Windows項(xiàng)目自動化測試實(shí)踐

 

  • Airtest:是一個跨平臺的、基于圖像識別的UI自動化測試框架,適用于游戲和App,支持平臺有Windows、 Android和iOS;
  • Poco:是一款基于UI控件識別的自動化測試框架,目前支持Unity3D/cocos2dx/Android原生app/iOS原生app/ 微信小程序,也可以在其他引擎中自行接入poco-sdk來使用;
  • AirtestIDE:跨平臺的UI自動化測試編輯器,內(nèi)置了Airtest和Poco的相關(guān)插件功能,能夠快速簡單地 編寫Airtest和Poco代碼;
  • AirLab:真機(jī)自動化云測試平臺,目前提供了TOP100手機(jī)兼容性測試、海外云真機(jī)兼容性測試等服務(wù);

 

2.Airtest工作原理

基于圖像識別框架Airtest的Windows項(xiàng)目自動化測試實(shí)踐

 

三、Airtest環(huán)境搭建及IDE的簡單使用

官方文檔:
https://airtest.doc.io.netease.com/IDEdocs/getting_started/AirtestIDE_install/

1.下載安裝

1)安裝Python/ target=_blank class=infotextkey>Python

由于Airtest框架是基于python語言開發(fā),本地需要搭建python相關(guān)環(huán)境,建議使用python3

Python 下載地址:
https://www.python.org/downloads/

2)下載AirtestIDE客戶端

AirtestIDE客戶端下載:
http://airtest.netease.com

Windows系統(tǒng)用戶在官網(wǎng)上下載對應(yīng)32位或是64位版本的zip包,解壓后得到AirtestIDE文件夾,雙擊AirtestIDE/AirtestIDE.exe即可啟動

基于圖像識別框架Airtest的Windows項(xiàng)目自動化測試實(shí)踐

 

2.Airtest IDE使用

1)生成報(bào)告

Airtest運(yùn)行完成后,會自動生成一份報(bào)告,通過下圖按鈕可以查看,點(diǎn)擊后會自動啟動瀏覽器查看報(bào)告

基于圖像識別框架Airtest的Windows項(xiàng)目自動化測試實(shí)踐

 

2)圖片/代碼模式切換

Airtest IDE中右鍵,即可兩種模式相互切換

基于圖像識別框架Airtest的Windows項(xiàng)目自動化測試實(shí)踐

 

切換后的效果如下:

基于圖像識別框架Airtest的Windows項(xiàng)目自動化測試實(shí)踐

 

四、Airtest開展Windows應(yīng)用自動化測試實(shí)踐

1.連接Windows應(yīng)用

連接Windows應(yīng)用有三種方法,分別是:

  • 通過搜索窗口連接:設(shè)備窗-Windows窗口連接-搜索窗口,選擇窗口后,點(diǎn)擊連接
基于圖像識別框架Airtest的Windows項(xiàng)目自動化測試實(shí)踐

 

  • 通過句柄連接(由于句柄容易發(fā)生變化,因此不推薦此連接方式):下圖的67330即為企業(yè)微信的句柄
基于圖像識別框架Airtest的Windows項(xiàng)目自動化測試實(shí)踐

 

  • 通過正則匹配應(yīng)用應(yīng)用標(biāo)題進(jìn)行連接
if not cli_setup:
    auto_setup(__file__, logdir=True, devices=["Windows:///?title_re=.*閱云*"])

 

2.Windows常用API

官方文檔:
https://airtest.readthedocs.io/zh_CN/latest/all_module/airtest.core.win.win.html

源碼:
https://airtest.readthedocs.io/zh_CN/latest/_modules/airtest/core/win/win.html

  • connect:連接設(shè)備
  • shell:執(zhí)行cmd命令
  • snapshot:截圖
  • keyevent:執(zhí)行鍵盤事件
  • text:輸入文本
  • key_press:按下某個按鍵
  • key_release:釋放某個按鍵
  • touch:鼠標(biāo)點(diǎn)擊事件
  • double_click:鼠標(biāo)雙擊
  • swipe:滑動
  • move_mouse:移動鼠標(biāo)
  • mouse_down:按下鼠標(biāo)(左/右)鍵
  • mouse_up:釋放鼠標(biāo)(左/右)鍵

 

3.編寫測試代碼

先看下待測試的windows應(yīng)用的頁面布局:

基于圖像識別框架Airtest的Windows項(xiàng)目自動化測試實(shí)踐

 

1)代碼構(gòu)成

基于圖像識別框架Airtest的Windows項(xiàng)目自動化測試實(shí)踐

 

  • 導(dǎo)入核心api和初始化客戶端的方法
# -*- encoding=utf8 -*-
__author__ = "Administrator"
import random
from airtest.core.api import *
from airtest.cli.parser import cli_setup
  • 連接windows應(yīng)用
# 連接windows應(yīng)用
if not cli_setup:
    auto_setup(__file__, logdir=True, devices=["Windows:///?title_re=.*閱云*"])
  • Airtest IDE遵循python編碼風(fēng)格,因此可以將各個測試動作/場景封裝成一個一個的函數(shù),當(dāng)然也可以封裝在其他文件里,然后導(dǎo)入引用
基于圖像識別框架Airtest的Windows項(xiàng)目自動化測試實(shí)踐

 

2)案例

  • 發(fā)送文本消息:

操作步驟為:進(jìn)入聊天窗口>輸入文本內(nèi)容>發(fā)送

def send_text(time):
    setup_send_msg()  # 進(jìn)入聊天窗口
    for i in range(time):
        text("這是AIRTEST發(fā)送的第%s條消息"%str(i))  # 輸入文本消息內(nèi)容
        keyevent("{ENTER}")  # 按下鍵盤Enter鍵,要大寫
        keyevent("{ENTER}")  # 第一遍按下Enter是防止此時(shí)的輸入法為中文,第二遍按下Enter是發(fā)送
  • 截圖發(fā)送

操作步驟為:進(jìn)入聊天窗口>點(diǎn)擊截圖按鈕>滑動鼠標(biāo)拉取截圖區(qū)域>確認(rèn)發(fā)送截圖

def send_screenshot():
    setup_send_msg()
    touch(Template(r"tpl1656061157595.png", record_pos=(-0.028, 0.138), resolution=(959, 654)))
    sleep(1)
    swipe((300,400), (600,800), duration=0.8, steps=2)
    keyevent("{ENTER}")

 

4.設(shè)計(jì)測試用例

GUI自動化測試并不適用于發(fā)現(xiàn)bug,更多的是將重復(fù)性高的、簡單的手工操作場景轉(zhuǎn)換為自動操作,用于回歸測試,或是用于一些數(shù)據(jù)的構(gòu)造模擬上。

將一些基本操作封裝為一個個函數(shù)以后,就可以進(jìn)行組合、設(shè)計(jì)測試用例了,如:

① 場景一:發(fā)送不同類型的消息

分別調(diào)用以下函數(shù):

  • 調(diào)用發(fā)送文本函數(shù)
  • 調(diào)用發(fā)送表情函數(shù)
  • 調(diào)用發(fā)送圖片函數(shù)
  • 調(diào)用發(fā)送截圖函數(shù)
  • ......

當(dāng)然,以上各個函數(shù)也可以單獨(dú)作為一個個測試用例,從而用于回歸測試;

 

② 場景二:持續(xù)發(fā)送文本/圖片消息

將上述函數(shù),加上循環(huán),便可實(shí)現(xiàn)持續(xù)發(fā)送xx類型的消息;不過與其說是一條測試用例,倒不如說是為了模擬人工長時(shí)間操作運(yùn)行下程序的穩(wěn)定性,亦或是輔助其他特殊測試場景,比如:

  1. 去年我在測試移動端時(shí)、通過自動化模擬一端持續(xù)發(fā)送大量圖片消息,從而測試出【iOS移動端在弱網(wǎng)情況下接收大量離線文件消息程序會core掉】的bug。
  2. 今天在利用Airtest模擬持續(xù)發(fā)送文本消息、測試程序穩(wěn)定性時(shí),發(fā)現(xiàn)【單聊發(fā)送消息傳錯類型參數(shù),發(fā)送給群聊,導(dǎo)致發(fā)送消息失敗,且無任何消息發(fā)送記錄】的bug,很奇怪,我手工發(fā)送的就沒任何問題,暫時(shí)還沒找到規(guī)律,研發(fā)還在定位中。雖然Airtest并沒有直接發(fā)現(xiàn)bug,但卻給發(fā)現(xiàn)bug創(chuàng)造了更多可能。

 

5.運(yùn)行效果

 

6.查看測試報(bào)告

Airtest運(yùn)行完成后會自動生成測試報(bào)告,通過控制臺菜單欄的查看報(bào)告按鈕,即可自動在瀏覽器打開測試報(bào)告:

基于圖像識別框架Airtest的Windows項(xiàng)目自動化測試實(shí)踐

 

五、總結(jié)與思考

  • Airtest也可以用于pycharm編輯器下,需要手動提前安裝airtest庫:pip install -U airtest,安裝后即可新建airtest腳本,語法和在Airtest IDE中編寫時(shí)一致。另外,pycharm編輯器也可以直接打開airtest腳本;
  • 對于web、APP自動化主要用該端特定的自動化框架,如selenium、appium,而此類測試框架無法實(shí)現(xiàn)的Windows應(yīng)用的操作,則可以借助Airtest實(shí)現(xiàn),從而打通端到端自動化測試流程;
  • 自動化測試編碼實(shí)現(xiàn)僅僅是自動化測試流程中一個小環(huán)節(jié),更重要的是場景設(shè)計(jì)、用例實(shí)現(xiàn)以及如何發(fā)揮自動化測試的價(jià)值;
  • 自動化測試可能不會發(fā)現(xiàn)多少bug,但卻給發(fā)現(xiàn)bug創(chuàng)造了更多可能;

分享到:
標(biāo)簽:框架
用戶無頭像

網(wǎng)友整理

注冊時(shí)間:

網(wǎng)站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網(wǎng)站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網(wǎng)站吧!
最新入駐小程序

數(shù)獨(dú)大挑戰(zhàn)2018-06-03

數(shù)獨(dú)一種數(shù)學(xué)游戲,玩家需要根據(jù)9

答題星2018-06-03

您可以通過答題星輕松地創(chuàng)建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學(xué)四六

運(yùn)動步數(shù)有氧達(dá)人2018-06-03

記錄運(yùn)動步數(shù),積累氧氣值。還可偷

每日養(yǎng)生app2018-06-03

每日養(yǎng)生,天天健康

體育訓(xùn)練成績評定2018-06-03

通用課目體育訓(xùn)練成績評定