个人对测试的理解--自动化UI测试

系列文章目录

整理下个人对测试的一些想法和理解,个人之见。



整体思路

  1. 自动化UI测试基于功能测试,主要是UI层面的功能操作
  2. 自动化需要较高的维护成本,适合长期稳定迭代的项目(不会频繁的更换框架)
  3. 编写脚本时应当优先完成主流程
  4. 代码应当考虑模块的复用性
  5. 简单地分为:WEB-UI、APP-UI、桌面应用-UI

UI测试

WEB—UI

当前软件测试发展趋势,提供可视化界面的需求下,更多的使用web界面,更为轻量、美观,功能实现也比较简单

selenium

毫无疑问,当前的web-UI自动化测试最热门的工具,通过webdriver实现对浏览器的操作,近乎完全模拟了测试人员在前端进行功能测试。

  • 语言支持:支持python、java、C#等主流软件,测试人员建议使用python,更为方便
  • 浏览器支持:chrome、firefox、IE等等,根据兼容性要求选择浏览器,多数情况下,chrome即可满足需求,代码无需变动或少量变动即可支持其他浏览器
快速入门

python + selenium + pytest

  1. 安装python以及selenium、pytest
  2. 下载webdriver,不同浏览器不同版本都不太一样:https://www.selenium.dev/downloads/ 或者 http://npm.taobao.org/mirrors/chromedriver chrome比较特别,因为google访问不了,建议用淘宝的源下载
  3. 编写脚本
  • 启动一个浏览器
import os
import time
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.support.ui import WebDriverWait

current_path = os.path.dirname(__file__)
chrome_driver = os.path.abspath(r"/../resource/tools/chromedriver.exe")
# 启动浏览器
driver = webdriver.Chrome(chrome_driver, 0, chrome_options)
driver.implicitly_wait(30)
# 打开百度
driver.get("https://www.baidu.com");
time.sleep(30)
# 关闭浏览器
driver.quit()
  • 建立一个方便编写的框架
    可以参考seleniumbase这个框架,主要实现页面与操作的分离,这个项目带有不少example,可以参考学习

  • 注意pytest的集成以及报表输出allure
    pytest报表最好以html格式呈现,方便后续查阅,推荐搭配allure使用

APP-UI

appnium

类似selenium的逻辑

快速入门

python + appnium + pytest

  1. 下载安装安卓SDK:http://tools.android-studio.org/index.php/sdk
  2. 安装安卓模拟器(方便测试、使用实机也可以),可以使用sdk自带的,也可以下载模拟器https://www.yeshen.com
  3. 环境变量配置:系统变量里面添加变量名 ANDROID_HOME:sdk(根目录),添加path:%ANDROID_HOME%/build-tools/27.0.1;%ANDROID_HOME%/platform-tools;%ANDROID_HOME%/tools
  4. 验证环境变量:cmd验证:adb:连接手机设备,安装卸载app aapt:获取包名和启动页名
  5. 安装nodejs(可以不装)
  6. 通过nodejs安装appnium,或者手动下载安装https://github.com/appium/appium-desktop/releases
  7. 通过appnium-doctor检查appnium是否安装正常
  8. 安装python模块:pip install Appium-Python-Client
  9. 编写脚本
  10. 查看元素没有web方便,可以使用UI AutomatorViewer查看元素
airtest

网易开发,主要基于图形匹配的前端测试,网易主要用于手机游戏的测试,脚本核心库(python)是airtest、pocoui等

快速入门

python + appnium + pytest

  1. 下载安装安卓SDK:http://tools.android-studio.org/index.php/sdk
  2. 安装安卓模拟器(方便测试、使用实机也可以),可以使用sdk自带的,也可以下载模拟器https://www.yeshen.com
  3. 环境变量配置:系统变量里面添加变量名 ANDROID_HOME:sdk(根目录),添加path:%ANDROID_HOME%/build-tools/27.0.1;%ANDROID_HOME%/platform-tools;%ANDROID_HOME%/tools
  4. 验证环境变量:cmd验证:adb:连接手机设备,安装卸载app aapt:获取包名和启动页名
  5. 安装nodejs(可以不装)
  6. 通过nodejs安装appnium,或者手动下载安装https://github.com/appium/appium-desktop/releases
  7. 通过appnium-doctor检查appnium是否安装正常
  8. 安装python模块:pip install Appium-Python-Client
  9. 编写脚本
  10. 查看元素没有web方便,可以使用UI AutomatorViewer查看元素

桌面应用-UI

pywinauto

原生的windwos,或者QT5这种实现来微软的UIA的都可以使用python的pywinauto库,控件查看可搭配微软的inspect或者accessibility insight,桌面应用界面也和网页也差不了多少。

快速入门

python + pywinauto

from pywinauto import Desktop, Application

app = Application(backend = 'uia').start(r"E:\****.exe")
# 调试用,直接链接已打开的应用
# app = Application(backend='uia').connect(process=11480)
# app.Properties.print_control_identifiers()

# 获取整个窗口
dlg = app['测试应用']
# 也有获取全部窗口的
dialogs = app.windows()
# 获取窗口内的控件
export_button1 = app['测试应用']['aaa]
# 或者
export_button2 = dlg['aaaa']

# 输出该控件信息
export_button2.print_control_identifiers()
# 点击该按钮
export_button2.click()
# 弹出一个提示框
success_dialog = dlg['****']
# 点击确认关闭弹框,ok按钮在一个groupbox里,不知道为啥['']不行
success_dialog.GroupBox.OK.click()
# 或者,好像也不行
# success_dialog.window(title_re="GroupBox").windows(title_re="OK").click()
# 点击显示列表
dlg['-----'].click()

print("end")
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值