UI自动化测试 浅谈

  • 接口,性能,UI自动化的工具选择
  • 什么是UI自动化测试
  • UI自动化测试分类
  • 做UI自动化测试,需要什么技能
  • Web UI自动化 APP自动化
  • 怎么做UI自动化测试
  • selenium学习路线
  • 为什么采用 Selenium 的模式
  • selenium元素定位统一入口
  • Selenium元素定位

接口,性能,UI自动化的工具选择

功能测试是基础,只有理解功能测试才能做好自动化测试
接口自动化测试:unitest,DDT
性能测试:Monkey、fillder、wireshark、postman、jmeter
UI自动化测试:Selenium,Appium,Robot Framework,Robot,unittest Appium,app log,robotium、uiautomation
管理工具:Jenkins、Docker
其它:Unix、Linux等操作系统,熟悉Oracle、Mysql等数据库

什么是UI自动化测试

UI层的自动化测试,这个应该再熟悉不过了,大部分测试人员的大部分工作都是对UI层的功能进行测试。例如,不断重复的对一个表单提交,结果查询等功能进行测试,不管什么样的产品,最终呈现给用户的是UI层。所以,测试人员应该更多的精力放在UI层。那么也正是因为测试人员在UI层投入大量的精力,所以,可以通过相应的自动化测试工具来模拟这些操作。UI层的自动化测试工具非常多,比较主流的是QTP,Robot Framework、watir、selenium 等

UI自动化测试分类

B/S 架构的 Web UI 测试自动化
APP 测试自动化
C/S 架构的 UI 测试自动化
不管使用什么技术来执行测试自动化至少包含以下几个步骤
1、找
找元素、控件、输入框、等等一切你想找的内容
2、控制
单击、双击、输入内容、下拉等等一系列操作属于控制的范畴
3、断言

做UI自动化测试,需要什么技能

前端相关技术:HTML、XML、JavaScript、TCP/IP协议等
编程语言:就像前面说的,selenium支持多种语言,根据个人情况选择
工具:比如selenium
需求分析:项目类型,生命周期,是否适合开展自动化测试等

Web UI自动化 APP自动化

如果是 Web UI 自动化、现成的框架有 Selenium 和 Robot Framework
如果是 APP 自动化、有 Appium 可以选择
如果 C/S 的程序是 Windows 标准控件的话、可以用 MSAA 或者 UIA 来做自动化

怎么做UI自动化测试

通过开源工具如python+selenium+集成部署工具,这种方法,需要有python语言基础,运用selenium的框架,进行web ui界面的元素定位、抓取,回放来测试

通过Robot Framework+selenium的dll+集成工具,这种方案,适合于没有开发语言基础,但可以通过已经封装好的事件关键字进行调用,从而进行自动化, 也是开源工具,但是工具更新维护较慢,会出现各种异常问题

通过UFT工具,企业商用级别的自动化测试工具,提供强大的录制、回放功能,但是产品需要付费,会有一定的产品成本

selenium学习路线

既然提到最多的工具是Selenium,那就要费力学习下了

  • 配置测试环境,针对所学习语言,来配置你相应的selenium 测试环境
  • 接着需要熟悉webdriver API ,API就是selenium 所定义一方法,用于定位,操作页面上的各种元素
  • 先学习元素的定位,selenium 提供了id、name、class name、 tag name、link text、partial、link text、 xpath、css、等定位方法。xpath和css功能强大语法稍微复杂,在这其间你可能还需要了解更多的前端知识。xml ,javascript 等
  • 定位元素的目的是为了操作元素,接就要学习各种元素有操作,输入框,下拉框,按钮点击,文件上传、下载,分页,对话框,警告框…等等
  • 当可以模拟手工测试来操作页面上的各种元素,接着需要做的就是把这些“用例”组织起来
  • 需要做的就是学习并使用单元测试框架,单元测试框架本身就解决了用例的组织与运行
  • 接着又遇到了新的疑问,怎么知道用例运行失败还是成功。那么就需要在脚本中加一些验证与断言

为什么采用 Selenium 的模式

原因一,对于用户来说这是一个开源框架
原因二,Selenium 可无缝接入。这是一个用于Web应用程序测试的工具,支持多平台、多浏览器、多语言去实现自动化测试,Selenium2将浏览器原生的API封装成WebDriver API,可以直接操作浏览器页面里的元素,甚至操作浏览器本身(截屏,窗口大小,启动,关闭之类的),所以就像真正的用户在操作一样
目前支持:Mac、Windows操作系统,chrome、Firefox、IE浏览器

selenium元素定位统一入口

接触过 UI 自动化用例设计的话,都知道,如果想通过 selenium 操作一个元素,其中不可或缺的就是对元素定位的描述。定位一个元素的方法很多,常用的有 id,name,css,xpath 等,对应不同的定位方法selenium 在处理上也给出了不同接口,同时框架封装了一个方法供 driver 调用,主要功能就是解析描述元素的字符串自动判断是 id、css 还是 xpath。

Selenium元素定位

定位元素;调用接口操作该元素,其中定位一个元素的方法很多,常用的有 id,name,css,xpath,因为现在的服务器性能配置等都很好,所以跑一个WEB-UI用例可以不用考虑性能问题。从维护成本上考虑会优先选择 id、name,其次 css,最后用 xpath
不能保证每一个 web 系统的所有元素都能提供一个唯一 id 或 name,当然如果能和前端开发达成合作,那就很美好了。一般情况下都需要面对没有 id 和 name 这两个属性的情况。这时就可以使用 css 样式,很多时候 css 样式是能满足定位需求。当然在这些都不能满足需求的情况下就只能选择 xpath

UI自动化测试 浅谈相关推荐

  1. ui自动化测试框架_浅谈前端(UI)自动化测试

    作为一名测试开发从业者,自动化测试好像是绕不开的话题....结合最近接触到的一些测开应聘同学聊到关于前端自动化测试及自己的理解,分享一下自己对UI自动化测试的认识,大概如下. 测试分层的自动化测试思想 ...

  2. #软件测试###浅谈几个UI自动化测试工具

    一.Selenium 一个web的自动化测试工具,相比QTP而言支持多种语言,QTP只支持VBS,支持多平台,支持分布式测试用例的执行.selenium主要使用的工具是WebDriver. WebDr ...

  3. 浅谈如何提高自动化测试的稳定性和可维护性 (pytestallure)

    转载自:https://testerhome.com/topics/15937 序 在之前,我写过一个系列"从零开始搭建一个简单的ui自动化测试框架(pytest+selenium+allu ...

  4. 2022浅谈前端八大UI库

    之前在3月份的时候做过一个<浅谈前端八大UI库>的公开课,反馈还不错,当时就想着等有时间了,就把公开课讲的东西,组织成一个博客.这一等,就等了两个多月. 先说一下什么样的同学适合看这个博客 ...

  5. 谈 Dojo 应用的 UI 自动化测试

    目录 前言: Dojo 是什么? Dojo 应用 UI 自动化测试面临的挑战 A. 异步请求的处理 B. 元素定位 图 1. Dojo 按钮小部件 C. Dojo 复杂性 D. 产品复杂性 E. 频繁 ...

  6. 跑三小时的monkey测试该怎么算_浅谈App测试(下)~带音频

    文 | Vicky 采编|Emily 浅谈App测试(上)-带音频 一.功能测试​ 二.性能测试 (1)耗电量 影响因素:定位.传感器.蓝牙,其中CPU.持续定位是两个平台造成耗电的主要因素. (2) ...

  7. 浅谈棋牌游戏开发框架之架构

    浅谈棋牌游戏开发框架之架构 关键字: 棋牌游戏 架构 框架 开发 发表文章 摘要:现在来和大家分享下怎么架构和实现框架来满足棋牌游戏需求的.一.原型符合棋牌项目框架,快速换皮,快速融合.多渠道多包体. ...

  8. 基于Appium的移动端UI自动化测试

    为什么需要UI自动化测试 移动端APP是一个复杂的系统,不同功能之间耦合性很强,很难仅通过单元测试保障整体功能.UI测试是移动应用开发中重要的一环,但是执行速度较慢,有很多重复工作量,为了减少这些工作 ...

  9. html4与html5效果,浅谈HTML5与HTML4的10个关键区别

    HTML5是HTML标准的下一个版本.越来越多的程序员开始HTML5来构建网站.如果你同时使用HTML4和HTML5的话,你会发现用HTML5从头构建,比从HTML4迁移到HTML5要方便很多.虽然H ...

  10. iOS实录15:浅谈iOS Crash

    导语:在当前的iOS开发中,虽然ARC为开发者解决了手动内存管理时代 的许多麻烦,但是内存方面的问题依然是产生iOS Crash的元凶之一,本文介绍内存方面,有关僵尸对象.野指针.内存泄漏.废弃内存这 ...

最新文章

  1. linux进程间通信:FIFO实现进程间的双向通信
  2. 优酷开放sdk-setOnerroListener
  3. 同域下iframe操作时,js访问document出现拒绝访问的问题原因
  4. .NET分布式大规模计算利器-Orleans(一)
  5. 飞畅科技-国内老牌工业以太网交换机品牌
  6. python中for循环是可以带else的
  7. 【算法】BloomFilter 如何判断一个元素在亿级数据中是否存在?
  8. go语言生成uuid
  9. Shell中判断文件,目录是否存在
  10. Quartz-第四篇 常规quartz的使用
  11. 硬盘服务器作用,文件服务器有什么作用?
  12. 零基础学Arcgis(十二)地图标注与注记
  13. 最详细的3DMax 2019安装教程(从解压开始)
  14. IOS清理缓存的几种方法
  15. 跟开涛学shiro练习代码
  16. 【机器学习】深度学习框架是什么?有哪些?如何选择?
  17. 为什么总是闹离职的员工没走,平时不吭声的员工却突然离职?
  18. golang coredump分析
  19. 备案注销申请表_怎么注销单个网站备案?
  20. java编写某计算器控制台程序_计算器 - 进阶的憨狗 - 博客园

热门文章

  1. 记录repast4py环境配置
  2. 离散数学杜忠复版答案_离散数学 杜忠复 陈兆均
  3. Sentinel 2(哨兵2)卫星遥感数据的波段和组合介绍
  4. 微信打飞机游戏(python)
  5. 中国顶级***--小榕
  6. 风火编程--繁体转简体
  7. 航模飞机设计基础知识
  8. 23届计算机专业毕设Java选题参考
  9. SaaS服务商盘点之ERP篇
  10. AJAX视频教程下载