airTest 实战之 -- 【征途】自动打怪回城卖物品

airTest是一个跨平台的、基于图像识别的UI自动化测试框架,适用于游戏和App,支持平台有Windows、Android和iOS

官方文档: http://airtest.netease.com/docs/docs_AirtestIDE-en_US/index.html

github: https://github.com/AirtestProject/Airtest

常用的一些操作方法:

  • touch,点击某个位置
  • swipe,可以从一个位置滑动到另外一个位置    
  • wait,可以等待画面中某个图片出现        
  • exists,判断画面中是否存在某个图片
  • text,调用输入法,输入一段文字

本章使用airttest对网游征途实现自动进入洞穴打怪,回城,寻找npc卖药等操作

所有操作基于ui图像识别,模拟人的行为.服务器无感知,即非入侵式自动化.无封号风险

  • 被测对象准备
    • 我自己搭建的一个征途单机服务,搭建过程略. 
  • 库安装
    • pip3 install airtest
      pip3 install PyUserInput        #Sendkeys python3已经不能使用
      
  • 连接windows application  
    • #游戏窗口标题正则匹配.连接上后,默认会把窗口置前
      connect_device("Windows:///?title_re=征途驱魔人模拟器.*")
  • 大致实现思路
    •   回城后,通过'f' - >附近的玩家->npc .   在npc栏按z快速检索[杂货店伙计],检索到后移动到该npc
    •        卖物品
      • 先打开包裹计算需要出售的物品,需要出售的物品存储在item/目录
      •  通过touch + swipe方法将物品卖出
    • 按照步骤1,移动到传送师,传送到精怪洞
    • 上马,移动到打怪地点,开始打怪
        以下为移动到某个npc处代码.
#需要传入npc图片的名称和移动到目标位置成功标志图片
def move_to_npc(npc='',existPng=''):
    #open near player dialog
    k.tap_key("f")
    #switch near npc
    touch(Template(menuDir + "near_player_npc.png"))
    for i in range(10):
        indexKey = npc.split("f_")[-1][0]
        k.tap_key(indexKey)
        if exists(Template(npc)):
            touch(Template(npc))
            touch(Template("f_move.png"))
            k.tap_key(k.escape_key)
            break
    wait(Template(existPng))

视频链接: http://www.365yg.com/i6596572881549852686/#mid=1605965807164423

github: https://github.com/sanphi/airTestForzhengTu

原文地址:https://www.cnblogs.com/fithon/p/9574592.html