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
airTest 实战之 -- 【征途】自动打怪回城卖物品的更多相关文章
- Android Oreo 8.0 新特性实战 Autosizing TextView --自动缩放TextView
Android Oreo 8.0 新特性实战 Autosizing TextView --自动缩放TextView 8.0出来很久了,这个新特性已经用了很久了,但是一直没有亲自去试试.这几天新的需求来 ...
- 使用OpenCv+Arduino实现挂机自动打怪
使用OpenCv+Arduino实现挂机自动打怪 最近在玩某网游,练级十分枯燥和缓慢,就是挂机刷刷刷,所以研究一下自动化,找了个可以原地挂机刷怪的职业,然后用OpenCv检测技能冷却,冷却好了通过串口 ...
- python3.6+selenium3.13 自动化测试项目实战一(增加自动发送邮件报告接口)
说明: 继实战项目一的基础上添加自动发送报告邮件接口,代码有部分调整,可以结合实战一和上篇文章学习 变动: 1.增加文本文档SendToUserinfo.txt 用来保存邮件接收者的信息 2.修改测试 ...
- SpringBoot实战之SpringBoot自动配置原理
SpringBoot 自动配置主要通过 @EnableAutoConfiguration, @Conditional, @EnableConfigurationProperties 或者 @Confi ...
- Thinkphp5.0实战开发二------自动生成目录结构
序言 ThinkPHP5.0 具备自动创建功能,可以用来自动生成需要的模块及目录结构和文件等,自动生成主要调用\think\Build 类库.ThinkPHP5.0中模块文件夹在application ...
- Spring实战之处理自动装配的歧义性
仅有一个bean匹配所需的结果时,自动装配才是有效的.如果不仅有一个bean能够匹配结果的话,这种歧义性会阻碍Spring自动装配属性.构造器参数或方法参数.为了阐述自动装配的歧义性,假设我们使用@A ...
- 【Spring实战】—— 8 自动装配
本篇介绍一下自动装配的知识,Spring为了简化配置文件的编写.采用自动装配方式,自动的装载需要的bean. 自动装配 有以下几种方式: 1 byName 通过id的名字与属性的名字进行判断,要保证B ...
- python实战教程之自动扫雷(自己存下来学习之用)
3.python的第三方库win32api,win32gui,win32con,Pillow,numpy,opencv可通过 pip install --upgrade SomePackage 来进行 ...
- Selenium 2自动化测试实战37(自动发邮件功能)
自动发邮件功能 例如,如果想在自动化脚本运行完成之后,邮箱就可以收到最新的测试报告结果.SMTP(Simple Mail Transfer Protocol)是简单邮件传输协议,它是一组用于由源地址到 ...
随机推荐
- 第21章 DMA—直接存储区访问—零死角玩转STM32-F429系列
第21章 DMA—直接存储区访问 全套200集视频教程和1000页PDF教程请到秉火论坛下载:www.firebbs.cn 野火视频教程优酷观看网址:http://i.youku.com/fi ...
- 关于props的注意事项!
起于昨晚大半夜在群里看到有人问这个问题,在子组件的data属性里重新赋值props属性 this.a = this.propA,不生效! 提示了他如果是异步的话,就要注意watch.决定今日敲个dem ...
- centos 7忘记了root密码,如何改密码?
今天服务器突然进不去了,不知道是密码被改了,还是什么情况! 服务器版本:centos 7.0 网上查找了很多文档,有些办法不可行,如果是亲自试过绝对可行的方法: 1:重启服务器,如下界面,按键盘 &q ...
- dts--tests(四)
unit_tests.py """ DPDK Test suite. This TestSuite runs the unit tests included in DPD ...
- .NET领域驱动设计系列(12)
[.NET领域驱动设计实战系列]专题十一:.NET 领域驱动设计实战系列总结 摘要: 一.引用 其实在去年本人已经看过很多关于领域驱动设计的书籍了,包括Microsoft .NET企业级应用框架设计. ...
- tcl之string操作-length/index/range/replace
- PHP无限分类生成树方法,非递归,引用
//这个是核心方法 function generateTree($items){ $tree = array(); foreach($items as $item){ ...
- Facebook Reporting API -- Facebook 数据导出API
1.获取token 浏览器打开 "访问口令工具" (FB链接请FQ) https://developers.facebook.com/tools/accesstoken/ App ...
- linux epoll用法
epoll 是 linux 特有的 I/O 复用函数.它是把用户关心的文件描述符事件放在内核的一个事件列表中,故而,无须像select和poll一样每次调用都重复传入文件描述符或事件集.但是, epo ...
- POJ 2441 状压DP
Arrange the Bulls Time Limit: 4000MS Memory Limit: 65536K Total Submissions: 5289 Accepted: 2033 ...