游戏测试 【自动化测试】网易 AirTest 和腾讯 GAutomator 的对比(一)

特尔斯特 · 2021年03月12日 · 最后由 白发苍苍的老大爷 回复于 2021年03月15日 · 5462 次阅读

前言:个人计划给项目引入游戏自动化,到时候想用 po 模式搭建游戏的自动化框架,用于自动化冒烟测试、性能采集等等。

测试场景:分别用两个工具实现从主界面到进入副本战斗的流程,记录各自执行的时间进行对比(两个工具都接了 SDK 直接找控件来实现自动化)。
详细内容:主界面点击【战斗】--->点击【主线】--->点击【第一章】--->点击【进入】-->点击【开始】开启战斗。

(游戏没上线,上述流程的游戏录频就不放了)

测试设备:雷电模拟器
测试工具:Airtest GAutomator
测试脚本:

Airtest 脚本:

# -*- encoding=utf8 -*-
import time
start = time.time()
from airtest.core.api import *
auto_setup(__file__)
from poco.drivers.unity3d import UnityPoco
poco = UnityPoco()

def timer(func):
    def count_time(*args,**kwargs):
        start = time.time()
        func()
        end  = time.time()
        print(str(func.__name__)+"运行时间:"+str(end-start))
    return count_time


@timer
def go_battle():
    poco("m_BtnBattle").click() #点击【战斗】按钮
    sleep(1) # 在每一次操作中间休眠1秒方便组件先实例化

    poco("m_BtnThread2").click() #点击【主线】按钮
    sleep(1)  # 在每一次操作中间休眠1秒方便组件先实例化

    poco("m_ChapterIcon_0").click()  #点击【第一章】
    sleep(1) # 在每一次操作中间休眠1秒方便组件先实例化

    poco("m_BtnEnter").click()  #点击【进入】
    sleep(1) # 在每一次操作中间休眠1秒方便组件先实例化

    poco("m_BtnFight").click() #点击【开始】进入战斗
    sleep(1) # 在每一次操作中间休眠1秒方便组件先实例化

go_battle()
print(time.time()-start)

GAutomator 脚本:

import time
start= time.time()
import wpyscripts.manager as manager
from   wpyscripts.tools.basic_operator import find_element_wait


def timer(func):
    def count_time(*args,**kwargs):
        start = time.time()
        func()
        end  = time.time()
        print(str(func.__name__)+"运行时间:"+str(end-start))
    return count_time


@timer
def go_battle():
    engine = manager.get_engine()

    button_battle= find_element_wait("m_BtnBattle")  #点击【战斗】按钮
    engine.click(button_battle)
    time.sleep(1)   #在每一次操作中间休眠1秒方便组件先实例化

    button_chapter= find_element_wait("m_BtnThread2")  #点击【主线】按钮
    engine.click(button_chapter)
    time.sleep(1)  # 在每一次操作中间休眠1秒方便组件先实例化

    button_chapter_0= find_element_wait("m_ChapterIcon_0")#点击【第一章】
    engine.click(button_chapter_0)
    time.sleep(1)  # 在每一次操作中间休眠1秒方便组件先实例化

    button_start = find_element_wait("m_BtnEnter")  #点击【进入】
    engine.click(button_start)
    time.sleep(1)  # 在每一次操作中间休眠1秒方便组件先实例化

    button_fight  =find_element_wait("m_BtnFight")  #点击【开始】进入战斗
    engine.click(button_fight)



go_battle()
print(time.time()-start)

时间对比

测试结论:从数据对比来看 airtest 要略胜一筹,但是我在测试过程中明显感觉 GAutomator 查找结点的速度要快很多,有时候界面一切换按钮节点还没有完全加载就实现了点击,所以后续再多对比对比再做决定。

共收到 1 条回复 时间 点赞

期待后续的性能采集自动化联调

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册