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)是简单邮件传输协议,它是一组用于由源地址到 ...
随机推荐
- java对象传递小解析
先上代码: import org.apache.commons.lang.builder.ToStringBuilder; import org.apache.commons.lang.builder ...
- 3.vue引入axios全局配置
前言: Vue官方推荐使用axios来进行异步访问. axios文档参考:axios中文文档 开始搭建: 1.引入axios (1)打开终端 win+R (2)切换到项目路径: g: cd Webap ...
- linux下Mycat的安装配置
1.下载Mycat Linux版:下载链接 2.通过SSH直连工具把安装包丢到linux:/usr/local/ 3.解压安装Mycat 4.配置环境 5.使配置文件生效
- js复习,预编译
注意:函数声明整体提升.变量 声明提升 1.imply global 暗示全局变量:即任何变量,如果变量未声明就赋值,此变量就为全局对象所有 ==> eg: a = 122;==> e ...
- js一键复制到剪切板
<div id='demo'>我就是被复制的内容<span>点击复制<span></div> $('#demo').on('click','span', ...
- lintcode_111_爬楼梯
爬楼梯 描述 笔记 数据 评测 假设你正在爬楼梯,需要n步你才能到达顶部.但每次你只能爬一步或者两步,你能有多少种不同的方法爬到楼顶部? 您在真实的面试中是否遇到过这个题? Yes 哪家公司问你的 ...
- js将人民币数字转大写
function numberToUpper(money) { var cnNums = new Array("零", "壹", "贰", ...
- macOs 使用Homebrew升级到MySQL 8系列之后,php无法连接解决方法
当前时间2018-9-28 在使用brew install mysql 默认安装为 MySQL 8,但是使用php连接到数据库之后,出现了这种错误 (Unexpected server respose ...
- laravels -- Swoole加速php
LaravelS是一个胶水项目,用于快速集成Swoole到Laravel,然后赋予它们更好的性能.更多可能性. 环境 : ubuntu16 + nginx + php7.1 + LaravelS搭建高 ...
- mysql 存储过程的基本语法知识
1 MySQL中的基本的存储过程 我将其分类为增删改查来逐一的分布来说 增加: //创建一个存储过程 $sql = " CREATE PROCEDURE TABLE_PR2() ---- 注 ...