多测师是一家拥有先进的教学理念,强大的师资团队,业内好评甚多的接口自动化测试培训机构!

17727591462

联系电话

您现在所在位置:接口自动化测试培训 > 新闻资讯

使用自动化测试框架Airtest测试Windows网易云

更新时间:2022-12-07 09:21:44 作者:多测师 浏览:65

  一、Airtest基本原理

  AirtestIDE对普通Windows应用程序的测试支持,主要依靠图像识别框架(Airtest)进行位置定位,使用 pywinauto的操作接口进行模拟操作。

使用自动化测试框架Airtest测试Windows网易云

  二、windows应用程序测试

  1. 需求分析与预期效果

  ·点击未登录,跳出扫码登录窗口

  ·点击选择其它登录方式

  ·点击同意《服务条款》《隐私政策》《儿童隐私政策》前面的小框框,勾选上

  ·从txt文件中导入第一条预期登录失败测试用例,分别输入到手机号文本框和密码文本框

  ·点击登录

  ·当出现手机号或密码错误红字警告时,将手机号文本框和密码文本框中内容全选,清空

  ·从txt文件中导入第二条预期登录成功测试用例,分别输入到手机号文本框和密码文本框

  ·点击登录

  ·登录成功后

  ·点击网易云音乐中音乐搜索框,搜索“江南”

  ·点击江南

  ·右键将歌曲收藏到指定歌单中

  ·打开歌单,查看歌曲是否成功添加

  ·播放歌单中歌曲

  2. 在AirtestIDE中连接Windows窗口

  要使用AirtestIDE测试某个Windows程序,首先要将待测试的Windows窗口与AirtestIDE进行连接,其实也就是将Windows窗口的句柄告诉给AirtestIDE。在成功连接窗口后,Airtest能够将该窗口作为一个设备,接下来就像在操作一台Android设备一样,能够对Windows窗口进行图像识别、点击操作等。

  因为测试网易云登录功能时,需要打开多个窗口,所以采用Windows窗口连接中的桌面模式。

  连接注意事项:

  在此模式下,与选择窗口不同,Airtest图像识别到的是整个桌面,所以Airtest工具可能会误识别到AirtestIDE代码中的截图语句,故要将AirtestIDE中脚本编辑框切换为代码模式。

  3. 测试用例的编写

  本次实验测试用例针对网易云音乐登录,设计了一组登录成功用例和一组登录失败用例,都放在了loginTest.txt里。

  13270976346,tjm981130。

  13270976346,tjm971130。

  4. 编写Airtest脚本

  测试脚本如下:

  # -*- encoding=utf8 -*-

  __author__ = "admin"

  from airtest.core.api import *

  auto_setup(__file__)

  #搜索音乐的案例

  #读取测试用例

  with open("D:\\Airtest_Test\\loginTest.txt",encoding='utf-8') as f:

  content=f.readlines()

  data_list=[]

  for line in content:

  data_list.append([str(line.split(",")[0]),str(line.split(",")[1])])

  #登录

  touch(Template(r"tpl1608983218414.png", record_pos=(0.299, -0.266), resolution=(1920, 1080)))

  touch(Template(r"tpl1609035178281.png", record_pos=(-0.001, 0.093), resolution=(1920, 1080)))

  sleep(1)

  touch(Template(r"tpl1608981293166.png", record_pos=(-0.072, 0.104), resolution=(1920, 1080)))

  def input_pwd(index):

  touch(Template(r"tpl1608981390693.png", record_pos=(0.022, -0.036), resolution=(1920, 1080)))

  accountstr=data_list[index][0]

  print(accountstr)

  text(str(accountstr))

  sleep(1)

  touch(Template(r"tpl1608981404680.png", record_pos=(-0.024, -0.017), resolution=(1920, 1080)))

  password=data_list[index][1]

  print(password)

  text(str(password))

  sleep(1)

  touch(Template(r"tpl1608981588454.png", record_pos=(0.003, 0.025), resolution=(1920, 1080)))

  for index in range(0,2):

  if(exists(Template(r"tpl1608983376213.png", record_pos=(-0.265, -0.065), resolution=(1920, 1080)))):

  touch(Template(r"tpl1608983415046.png", record_pos=(-0.282, -0.106), resolution=(1920, 1080)))

  keyevent("^a")

  keyevent("{DEL}")

  touch(Template(r"tpl1608984487238.png", record_pos=(-0.043, -0.016), resolution=(1920, 1080)))

  keyevent("^a")

  keyevent("{DEL}")

  input_pwd(index)

  #搜索音乐

  sleep(2)

  touch(Template(r"tpl1608982011365.png", record_pos=(-0.305, -0.266), resolution=(1920, 1080)))

  text("江南")

  #touch(Template(r"tpl1608982102725.png", record_pos=(-0.326, -0.236), resolution=(1920, 1080)))

  #enter键搜索

  keyevent("{ENTER}")

  sleep(1)

  touch(Template(r"tpl1609040382463.png", record_pos=(-0.237, -0.106), resolution=(1920, 1080)))

  # 获取当前连接的窗口

  dev = device()

  # 拿到鼠标,并模拟鼠标的右键点击操作

  dev.mouse.right_click( (504, 336))

  sleep(3)

  #将歌曲添加到指定歌单

  keyevent("^s")

  touch(Template(r"tpl1609042019881.png", record_pos=(-0.059, 0.046), resolution=(1920, 1080)))

  sleep(3)

  #去歌单中查看歌曲是否被添加成功,并播放歌单

  touch(Template(r"tpl1609040760016.png", record_pos=(-0.454, 0.052), resolution=(1920, 1080)))

  touch(Template(r"tpl1609043299145.png", record_pos=(-0.245, -0.184), resolution=(1920, 1080)))

  脚本编写注意事项:

  在 keyevent()中不使用 {} 框起来的字符,都会被当成需要输入的字符串,被输入到Windows窗口的输入框上。

  常用sleep(),给服务器反应时间。

  windows上模拟键盘与鼠标操作与安卓端有些不同,具体在官方Windows平台api文档中查看。

  以上内容为大家介绍了使用自动化测试框架Airtest测试Windows网易云,本文由多测师亲自撰写,希望对大家有所帮助。了解更多自动化测试相关知识:https://www.aichudan.com/xwzx/

联系电话

17727591462

返回顶部