TA的每日心情 | 郁闷 2022-8-29 14:43 |
---|
签到天数: 1 天 连续签到: 1 天 [LV.1]测试小兵
|
所谓C/S架构即Client/Server(客户端/服务器架构)。虽然近年来C/S架构产品越来越少,大有被
B/S(Browser/Server 浏览器/服务器)架构超越的趋势,但C/S还是有B/S不可替代的优势(如系统速度
快,用户体验好,处理能力强且可以实现复杂业务功能等)。
本文以网易云音乐客户端为例,介绍C/S结构系统自动化测试方法,操作系统为Windows10,使
用工具为Python2.7+AutoIT v3。
1. AutoIT 介绍
1.1 AutoIt 简介
AutoIt是用以编写并生成具有BASIC语言风格的脚本程序的免费软件,它被设计用来在WindowsGUI
(用户界面)中进行自动操作。通过它可以组合使用模拟键击,鼠标移动和窗口/控件操作等来实现自动
化任务。AutoIt非常小巧,可以在所有windows操作系统上运行,且不需要任何运行库。官网:
https://www.autoitscript.com
1.2 AutoIt 下载安装
直接从官网下载最新版本(v3.3.14.2)后安装即可,下载地址:
https://www.autoitscript.com/site/autoit/downloads/
同时,我也上传到了百度网盘,还有两本中文帮助文档,推荐大家下载。
链接: https://pan.baidu.com/s/1bINz8i 密码: hjq9
1.3 AutoIt 快速入门
对于没有接触过AutoIt的同学,建议详细阅读下我上传的手册《AutoIt3CHS.chm》,里面有详细的入
门教程。这里只做简单的介绍:
1) 首先安装完成之后,你会看到AutoIt v3安装目录如下:
其中AutoIt Help File是帮助手册,AutoIt Window Info是窗口信息工具(x64或x86分别代表64位或32
位版本),Compile Script to .exe是打包工具(打包au3脚本为exe文件),Run Script是运行脚本工具,
SciTE Script Editor是脚本编辑器即IDE。
2) 我们运行SciTE Script Editor,输入如下代码(弹出消息框,输出Hello World)
MsgBox(0,'Hello World','AutoIt Demo by Lovesoo')
3) Ctrl+S保存当前文件
4) F5运行,结果如下
2. C/S架构客户端自动化测试
下面我们以网易云音乐客户端为例,详细介绍C/S架构客户端如何实现自动化测试。
首先我们设想一个基本的测试流程如下:运行网易云音乐-> 搜索歌曲并播放 -> 校验播放歌曲是否正确
下面我们使用AutoIT及Python+AutoIt分别实现相应的自动化测试:
2.1 AutoIt版 2.1.1 运行网易云音乐 运行网易云音乐客户端命令非常简单,如下我们定义了
网易云音乐客户端路径,使用Run函
数运行即可,并使用Sleep函数等待5秒至客户端启动完成:
- ;定义相关参数
- $cloudmusic_path="C:\Program Files (x86)\Netease\CloudMusic\cloudmusic.exe"
- ;运行网易云音乐
- Run($cloudmusic_path)
- Sleep(5000)
复制代码 下面,我们使用WinWaitActive函数,等待网易云音乐客户端窗口弹出并成为激活
状态,这时我们首先需要使用AutoIt Window Info获取窗口信息:
2)运行AutoIt Window Info (x64)
3) 使用快捷键Ctrl+Alt+F激活窗口信息工具
4) 鼠标点击网易云标题栏,并使用快捷键Ctrl+Alt+F锁定窗口信息工具,可以看到此时我们获取的
网易云音乐客户端的窗口信息包括Title,Class等
5) 这里我们使用Class:OrpheusBrowserHost作为WinWaitActive参数 (因为Title不固定是“网易云音
乐”,当播放歌曲时为歌曲信息)
- $cloudmusic_title="[CLASS:OrpheusBrowserHost]"
- ;等待网易云音乐窗口激活
- WinWaitActive($cloudmusic_title)
复制代码 2.1.2 搜索歌曲并播放
下面我们在等待激活网易云音乐客户端窗口后,去搜索栏输入歌曲名称完成搜索及播放,同样我们使用窗
口信息工具尝试获取搜索栏控件信息,发现无法正常获取搜索栏控件信息(鼠标云音乐标题栏移动至搜索栏
时,Control Info没有任何变化)
这是由于AutoIt只支持标准的Microsoft控件,这样我们就只能使用模拟键盘鼠标操作的方法了。我们发现,
在打开网易云音乐后,按TAB键5下会切换到搜索栏,此时输入歌曲名,再按向下键3下会选中第一首搜索歌
曲,按回车即可播放,实现代码如下:
- $song="红玫瑰"
- ;按5下TAB切换至搜索框
- Send("{TAB 5}")
- ;搜索歌曲
- Send($song)
- Sleep(1000)
- ;按3下向下键选择第一首歌曲
- Send("{DOWN 3}")
- Sleep(1000)
- ;按回车键播放歌曲
- Send("{ENTER}")
- Sleep(1000)
复制代码 2.1.3 校验播放歌曲是否正确
下面我们校验播放的歌曲是否为我们搜索的歌曲,此时只需校验网易云音乐客户端标题即可,代码如下:
- ;校验当前窗口标题是否含有搜索歌曲名
- $title = WinGetTitle($cloudmusic_title)
- if StringInStr($title,$song) Then
- MsgBox(0, "测试通过", $song&" in "&$title,2)
- Else
- MsgBox(16, "测试失败", $song&" not in "&$title)
- EndIf
复制代码 2.1.4 关闭网易云音乐窗口
最后我们使用WinClose函数即可关闭网易云音乐窗口:
- ;关闭窗口
- WinClose($cloudmusic_title)
复制代码 2.1.5 完整AutoIt代码
使用AutoIt进行网易云音乐客户端自动化测试,完整版示例demo如下:
- ;定义相关参数
- $cloudmusic_path="C:\Program Files (x86)\Netease\CloudMusic\cloudmusic.exe"
- $cloudmusic_title="[CLASS:OrpheusBrowserHost]"
- $song="红玫瑰"
- ;运行网易云音乐
- Run($cloudmusic_path)
- Sleep(5000)
- ;等待网易云音乐窗口激活
- WinWaitActive($cloudmusic_title)
- ;按5下TAB切换至搜索框
- Send("{TAB 5}")
- ;搜索歌曲
- Send($song)
- Sleep(1000)
- ;按3下向下键选择第一首歌曲
- Send("{DOWN 3}")
- Sleep(1000)
- ;按回车键播放歌曲
- Send("{ENTER}")
- Sleep(1000)
- ;校验当前窗口标题是否含有搜索歌曲名
- $title = WinGetTitle($cloudmusic_title)
- if StringInStr($title,$song) Then
- MsgBox(0, "测试通过", $song&" in "&$title,2)
- Else
- MsgBox(16, "测试失败", $song&" not in "&$title)
- EndIf
- ;关闭窗口
- WinClose($cloudmusic_title)
复制代码
|
|