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