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 实战之 -- 【征途】自动打怪回城卖物品的更多相关文章

  1. Android Oreo 8.0 新特性实战 Autosizing TextView --自动缩放TextView

    Android Oreo 8.0 新特性实战 Autosizing TextView --自动缩放TextView 8.0出来很久了,这个新特性已经用了很久了,但是一直没有亲自去试试.这几天新的需求来 ...

  2. 使用OpenCv+Arduino实现挂机自动打怪

    使用OpenCv+Arduino实现挂机自动打怪 最近在玩某网游,练级十分枯燥和缓慢,就是挂机刷刷刷,所以研究一下自动化,找了个可以原地挂机刷怪的职业,然后用OpenCv检测技能冷却,冷却好了通过串口 ...

  3. python3.6+selenium3.13 自动化测试项目实战一(增加自动发送邮件报告接口)

    说明: 继实战项目一的基础上添加自动发送报告邮件接口,代码有部分调整,可以结合实战一和上篇文章学习 变动: 1.增加文本文档SendToUserinfo.txt 用来保存邮件接收者的信息 2.修改测试 ...

  4. SpringBoot实战之SpringBoot自动配置原理

    SpringBoot 自动配置主要通过 @EnableAutoConfiguration, @Conditional, @EnableConfigurationProperties 或者 @Confi ...

  5. Thinkphp5.0实战开发二------自动生成目录结构

    序言 ThinkPHP5.0 具备自动创建功能,可以用来自动生成需要的模块及目录结构和文件等,自动生成主要调用\think\Build 类库.ThinkPHP5.0中模块文件夹在application ...

  6. Spring实战之处理自动装配的歧义性

    仅有一个bean匹配所需的结果时,自动装配才是有效的.如果不仅有一个bean能够匹配结果的话,这种歧义性会阻碍Spring自动装配属性.构造器参数或方法参数.为了阐述自动装配的歧义性,假设我们使用@A ...

  7. 【Spring实战】—— 8 自动装配

    本篇介绍一下自动装配的知识,Spring为了简化配置文件的编写.采用自动装配方式,自动的装载需要的bean. 自动装配 有以下几种方式: 1 byName 通过id的名字与属性的名字进行判断,要保证B ...

  8. python实战教程之自动扫雷(自己存下来学习之用)

    3.python的第三方库win32api,win32gui,win32con,Pillow,numpy,opencv可通过 pip install --upgrade SomePackage 来进行 ...

  9. Selenium 2自动化测试实战37(自动发邮件功能)

    自动发邮件功能 例如,如果想在自动化脚本运行完成之后,邮箱就可以收到最新的测试报告结果.SMTP(Simple Mail Transfer Protocol)是简单邮件传输协议,它是一组用于由源地址到 ...

随机推荐

  1. 安装阿里云版Linux云服务器,配置软件

    1.  购买域名 2.  购买云服务器ecs 3.  远程访问云服务器并装上Java环境和必备软件 3.1安装远程访问工具 3.2 jdk环境配置 3.3 Mysql依赖关系 重新配置MySQL的远程 ...

  2. 前端之jquery函数库

    jquery介绍 jQuery是目前使用最广泛的javascript函数库.据统计,全世界排名前100万的网站,有46%使用jQuery,远远超过其他库.微软公司甚至把jQuery作为他们的官方库. ...

  3. Mysql: pt-table-checksum 和 pt-table-sync 检查主从一致性,实验过程

    一.安装 percona 包 1.安装仓库的包 https://www.percona.com/doc/percona-repo-config/yum-repo.html sudo yum insta ...

  4. Servlet异步处理和文件上传

    1. 什么是异步处理     原来,在服务器没有结束响应之前,浏览器是看不到响应内容的!只有响应结束时,浏览器才能显示结果!     现在异步处理的作用:在服务器开始响应后,浏览器就可以看到响应内容, ...

  5. php 变量的8类类型

    整形,布尔,浮点形,字符串,数组,资源,对象和null php数据类型之查看和判断数据类型 php数据类型之自动转换和强制转换

  6. h5页面苹果端浮动问题

    最近在开发一个h5的app端,前端同事写好页面,我们后端java动态化页面,测试的时候发现安卓端什么浏览器都正常如下图1,可是苹果端无论什么浏览器都出现了底部菜单缺少了两个下图2图一:正常显示 图2, ...

  7. P1219 N皇后

    P1219 N皇后 题目描述 检查一个如下的6 x 6的跳棋棋盘,有六个棋子被放置在棋盘上,使得每行.每列有且只有一个,每条对角线(包括两条主对角线的所有平行线)上至多有一个棋子. 上面的布局可以用序 ...

  8. BurpSuite 的使用

    最好用的抓包软件, 不只是抓包软件 IE/Chrome中设置代理的方法是, 打开Internet选项面板->连接->局域网设置->取消勾选的使用自动配置脚本->勾选为LAN使用 ...

  9. CodeForces 547E Mike and Friends AC自动机 主席树

    题意: 给出\(n\)个字符串\(s_i\)和\(q\)个询问: \(l,r,k\):\(\sum\limits_{i=l}^{r}count(i, k)\),其中\(count(i,j)\)表示\( ...

  10. 大数据服务大比拼:AWS VS. AzureVS.谷歌

    [TechTarget中国原创] 对于企业用户来说,大数据服务是一项较具吸引力的云服务.三大巨头AWS.Azure以及谷歌都在力争夺得头把交椅,但是最后到底是哪一家能够取得王座之战的胜利呢? 云市场正 ...