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)是简单邮件传输协议,它是一组用于由源地址到 ...
随机推荐
- iOS提示框,为什么你应该使用 MBProgressHUD?
这是一篇带有一定笔者主观感情色彩的比较文章.文章着重对比github上最流行的两个iOS进度提示控件 MBProgressHUD 与 SVProgressHUD的各自优劣,来帮助初学者找到一个适合的i ...
- react手动搭建解析
1.创建项目名<react-progect> ->项目文件下创建package.json文件 ->项目下执行命令:cnpm initcnpm i webpack webpack ...
- 【赛时总结】 ◇赛时·I◇ AtCoder ARC-098
◆赛时I◆ ARC-098 ■试题&解析■ ◆本场最水◆ C-Attention 长点儿信心吧-- [AtCoder ARC-098 C] [解析] 既然只存在左右(东西)两个朝向,那么领导右 ...
- 使用poi将excel转换为html,适用本身有导出excel的而现在需要添加网页打印的功能
PoiExcelToHtmlUtil.java import org.apache.poi.POIXMLDocumentPart; import org.apache.poi.hssf.usermod ...
- vue 改变我们插值的符号{{}}改为${}
delimiters的作用是改变我们插值的符号.Vue默认的插值是双大括号{{}}.但有时我们会有需求更改这个插值的形式. delimiters:['${','}'] 现在我们的插值形式就变成了${} ...
- Ubuntu下安装libpcap+测试安装
1.从ftp://ftp.gnu.org/gnu/下载flex.bison.GNU M4.libpcap安装包,具体的链接分别如下: flex下载:http://flex.sourceforge.ne ...
- PHP.19-验证码生成
生成验证码 思路:先定义验证码函数getCode() //绘制验证码 $num = 4; //字符长度 getCode($num, 2); 1.创建画布,分配颜色 imagecreatetruecol ...
- 小白日记54:kali渗透测试之Web渗透-补充概念(AJAX,WEB Service)
补充概念 AJAX(异步javascript和XML) Asynchronous javascript and xml 是一个概念,而非一种新的编程语言,是一组现有技术的组合 通过客户端脚本动态更新页 ...
- java程序——凯撒加密
古罗马皇帝凯撒在打仗时曾经使用过以下方法加密军事情报: 请编写一个程序,使用上述算法加密或解密用户输入的英文字串要求设计思想.程序流程图.源代码.结果截图. 设计思想:输入一个字符串,然后将其中每 ...
- 001.我的第一个Java程序
第一步安装JDK 第二步设置PATH路径 设置Windows的PATH 路径 方法一:直接设置添加PATH C:\Program Files\Java\jdk1.8.0_92\bin 方法二: 先增加 ...