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)是简单邮件传输协议,它是一组用于由源地址到 ...
随机推荐
- Spring 学习之依赖注入
什么是依赖关系? 纵观所有的Java 应用,从基于Applet的小应用到多层次结构的企业级别的应用,他们都是一种典型的依赖性应用,也就是由一些互相协作的对象构成的,Spring把这种互相协作的关系称之 ...
- mask r-cnn
mask R-cnn, kaiming he的新作.可以同时完成object detection和segmentation,还可以做pose estimation,简直就是功能多多啊.在coco上测试 ...
- Oracle 的jdbc方法
package com.swift.jdbc_oracle; import java.sql.CallableStatement; import java.sql.Connection; import ...
- Swift项目,适配遇到的问题
Swift4.x 控制器自带xib加载在iOS8系统崩溃 // MARK: - 解决控制器自带xib加载在iOS8系统崩溃的问题.iOS8.x,需要给控制器的xib重写一下init 方法 overri ...
- Session和cookic
session是无状态的方式,服务器存储机制,当用户第一次请求服务器,服务器会给客户分配一个标识id,客户端再次访问服务器,根据session id 去访问服务器数据库,返回信息,同时session ...
- linux:eth网卡对应的物理网口判断
可以利用ethtool命令 #ethtool -p eth0 执行上述命令则相应的物理网口会闪烁,则可以判断对应的物理网口 注:应在不插网线的情况下测试
- redis 面试题
https://www.cnblogs.com/ftl1012/p/redisExam.html 1. 使用Redis有哪些好处? (1) 速度快,因为数据存在内存中,类似于HashMap,HashM ...
- 汇编:1位16进制数到ASCII码转换
;============================ ;1位16进制数到ASCII码转换 ; { X+30H (0≤X≤9) ;Y= { ; { X+37H (0AH≤X≤0FH) DATAS ...
- nodejs的http-server--web前端福利
很多web前端在日常开发的时候可能会想常开发是谁. 不好意思,说错了. 很多web前端在日常开发的时候总是避免不了让所写页面在服务器环境下执行. 比如当你在用angularjs的route模块等等等. ...
- VS2013未能正确加载的问题【转载】
今天使用电脑,关机重启时,WINDOWS提示“正在配置中,请勿关机” 的提醒,等重启后,打开VS2013就提示了未加载成功的问题,如下图: 我的解决方法是:找到VS2013开发人员命令提示:在窗口中输 ...