Ui自动化概念 + Web自动化测试框架介绍!

news2024/11/26 22:37:37

1.UI自动化测试概念:我们先明确什么是UI
UI,即(User Interface简称UI用户界面)是系统和用户之间进行交互和信息交换的媒介 UI自动化测试:
Web自动化测试和移动自动化测试都属于UI自动化测试,UI自动化测试就是借助自动化工具对程序UI层进行自动化的测试

2.为什么对UI采用自动化测试?
从不同的阶段或层次来说,自动化测试可以分为单元测试、接口测试、UI测试。如果一个产品从没有做单元测试或接口测试,只做u房的自动化测试是不科学的,很难从本质保证产品的质量
如果妄图实现全面的UI层的自动化测试更是劳民伤财,投入了大量人力时间结果却不尽人意,因为越往上层,用例维护成本越高,尤其是UI层的元素经常改变的产品。
但不管什么样的产品,最终呈现给用户的是UI层测试人员必须在UI层投入大量的精九。所以。我们有必要通过自动化的方式帮助我们"部分解放"重复的劳动,在解放劳动力和维护成本之间找到一个平衡,自动化测试就会成为我们的一个利器。

3.什么项目适合做UI自动化测试?
1项目周期:首先是项目周期较长的产品,一般在一年半以上的产品
2.项目需求变动不频繁:如果项目需求变动频繁,在做自动化时会导致大量的脚本需要不断的迭代维护,就失去了uI自动化解放劳动力的目的
3项目需要回归测试:项目需要回归测试,当测试一遍后,再次回归是可以直接通过自动化脚本进行回测

现在我也找了很多测试的朋友,做了一个分享技术的交流群,共享了很多我们收集的技术文档和视频教程。
如果你不想再体验自学时找不到资源,没人解答问题,坚持几天便放弃的感受
可以加入我们一起交流。而且还有很多在自动化,性能,安全,测试开发等等方面有一定建树的技术大牛
分享他们的经验,还会分享很多直播讲座和技术沙龙
可以免费学习!划重点!开源的!!!
qq群号:822269834【暗号:csdn999】

4.UI自动化测试介入时机
项目需要在功能测试完毕后

5.UI自动化测试所属分类
1.黑盒测试(功能测试)
2.白盒测试(单元测试)
3.灰盒测试(接口测试)
注意:UI自动化测试属于黑盒测试(功能测试)

Web自动化测试框架介绍
主流的web自动化测试工具

1.QTP

QTP是一个商业化的功能测试工具,收费,支持web,桌面自动化测试。
2.Selenium(本阶段学习)
Selenium是一个开源的web自动化测试工具,免费,主要做功能测试。
3.Robot framework
RobotFramework是一个基于Python可扩展地关键字驱动的测试自动化框架。(RF框架)

2.Selenium框架介绍及特点:
介绍:
Selenium是一个用于web应用程序的自动化测试工具

特点:

1,开源软件:源代码开放可以根据需要来增加工具的某些功能
2.跨平台:1inux.windows.mac
3.支持多种浏览器:FirefoxChrome、IE、EdgeOperaSafari等
4.支持多种语言:PythonJavaC #JavaSeript.Ruby、PHP等

5.成熟稳定:目前已经被qooqle、百度、腾讯等公司广泛使用
6.功能强大:能够实现类似商业工具的大部分功能,因为开源性,可实现定制化功能

Web自动化测试环境搭建

1.自动化测试环境搭建三要素:

1.python环境

2.selenium框架:pip install selenium

3.Chromedriver驱动:下载地址,注意版本的高度吻合.

4.Chrome浏览器
2.#selenium安装与Chromedriver

#下载安装selenium:

pip install selenium

#chromedriver下载匹配:

下载地址:https://npm.taobao.org/mirrors/chromedriver/

版本匹配:浏览器与驱动的版本需要对应,版本号的前三段需要严格对应,但最后一段可能找不到完全对应的版本号但需要尽量缩小差距范围,查看浏览器版本:Chrome右上角三个点->帮助-->关于Google Chrome

#3.配置成功验证

#将驱动放置在一个文件夹中,使用pyeharm打开文件央,配置好虚拟环境(python解释器),#新建一个test的py文件

#编写如下代码:

from selenium import webdriver

browserw webdriver.Chrome(./chromedriver) #mac代码

browser webdriver.chrome('./chromedriver.exe' ) #Windows代码

browser.get"https://www.baidu.com/)

#注意:

#如果不想每次都写./chromedriver,可以将chromedriver放到python的Seripts里

当你右键run一下test文件浏览器自动打开并在浏览器中打开了百度首页,就算配置成功 python

 2.元素定位(一)

在使用Selenium进行自动化测试的过程中经常需要定位到UI界面中的指定元素进行操作,比如点击搜索按钮,比如像输入椎中输入内容等等在Selenium中经常使用一下8大定位方法:

Selenium的8定位元素方法:

1id:根据DOM节点的id属性进行定位

name:根据DOM节点的name属性进行定位

class name:根据DOM节点的class属性进行定位<br>tagname:根据DOM节点的标签名进行定位 <br>linktext;根据超链接的文本定位

partial link text:根据超链接的部分文本定位<br>xPath:根据xpath定位<br>dss:根据css选择器定位说明:

Selenium框架定位元素的方法大致可以分为三类,一类是根据元素自身属性与特点定位(前6个)。第二类是根据xpath这种HTML解析模块实现的,第三类是根据css选择器定位,起始css选择器同样是HTML解析器
from selenium import webdriver

import time

bowser = webdriver.Chrome('chromedriver.exe')

bowser.get('file:///F:/jiango/zidonghua/pagetest/%E6%B3%A8%E5%86%8CA.html')

time.sleep(3)

#根据id

# bowser.find_element_by_id('userA').send_keys('2597349742')

# time.sleep(3)

<br>#根据class属性

# bowser.find_element_by_class_name('telA').send_keys('17535827976')

# time.sleep(3)

<br>#根据name

# bowser.find_element_by_name('emailA').send_keys('123@qq.com')

# time.sleep(3)

<br>#根据标签

# bowser.find_element_by_tag_name('input').send_keys('hellow')

# time.sleep(3)

#根据超链接部分文本

# bowser.find_element_by_partial_link_text('网站').click()

# time.sleep(3)

#根据超链接文本

# bowser.find_element_by_link_text("新浪").click()

# time.sleep(3)

bowser.quit()

idclassname,tagname定位

Selenium是以浏览器对象(browser ordriver)为基础进行定位的,定位的方法

为:browser.find element by xxx,其中到底根据啥进行定位,是根据xxx来决定的,比如 browser.find element byid节点id属性值)则是根据DOM节点的id进行定位的。

1.id:根据DOM节点的id属性进行定位

browser.find element by idid属性值

2.class name:根据DOR节点的class属性进行定位

browser.find element by class name"class属性值之一*)注意:如果节点class属性有多个值,只需要写其中一个即可定位到该节点

3 .name  相氓DOM节点的name属性讲行定位

browser.find element by name("name属性值'

python

4.tag name:根据DOM节点的标签名进行定位

browser.find element by tag name(div")

link text与partail link text定位

link text;根据超链接的文本定位

browser.find element by link text('新闻)

partiallink text:根据超链接的部分文本定位 browser.find element by link text新)

最后感谢每一个认真阅读我文章的人,看着粉丝一路的上涨和关注,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走!

软件测试面试文档

我们学习必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有字节大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1291848.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Mysql之数据处理增删改

Mysql之数据处理增删改查 插入数据INSERT INTO语句的使用INSERT 与子查询结合 更新数据(修改数据)UPDATE SET语句 删除数据DELETE FROM语句 Mysql8新特性&#xff1a;计算列 插入数据 INSERT INTO语句的使用 用 INSERT INTO 语句&#xff0c;向表中插入数据 方式一&#xff1a;…

网络安全威胁——DDoS攻击

DDoS攻击 1. 定义2. DDoS攻击类型2.1 网络层攻击2.2 传输层攻击2.3 应用层攻击 3.DDoS攻击态势特点 1. 定义 分布式拒绝服务&#xff08;DDoS&#xff09;攻击是一种常见的网络攻击形式。攻击者利用恶意程序对一个或多个目标发起攻击&#xff0c;企图通过大规模互联网流量耗尽…

活动预告 | 中国数据库联盟(ACDU)中国行第四站定档西安,邀您探讨数据库前沿技术

作为墨天轮社区与中国数据库联盟的品牌活动之一&#xff0c;【ACDU 中国行】已走过深圳、杭州、成都三大城市&#xff0c;在线下汇集数据库领域的行业知名人士&#xff0c;共同探讨数据库前沿技术及其应用&#xff0c;促进行业发展和创新&#xff0c;同时也为开发者们提供一个友…

什么是HTTPS加密协议?

文章目录 应用层协议什么是HTTP&#xff1f;认识URL工具 什么是HTTPS协议&#xff1f;什么是“加密”&#xff1f; 应用层 我们程序猿写的一个个解决我们实际问题&#xff0c;满足我们日常需求的网络程序&#xff0c;都是在应用层。 协议 协议是一种 “约定”。socket api的…

富时中国a50指数准确吗

富时中国A50指数简介 富时中国A50指数&#xff08;FTSE China A50 Index&#xff09;是富时罗素指数有限公司&#xff08;FTSE Russell&#xff09;编制的&#xff0c;旨在反映中国A股市场50家市值较大、流动性较好的公司的股价表现。它是国际上对中国A股市场投资者影响较大的…

springbootmybatisPlus

分页 1.加 Configuration public class MybatisPlusConfig {Beanpublic MybatisPlusInterceptor mybatisPlusInterceptor() {MybatisPlusInterceptor interceptor new MybatisPlusInterceptor();interceptor.addInnerInterceptor(new PaginationInnerInterceptor());return …

前端笔记(四)Flex 布局

标准流 标准流也叫文档流&#xff0c;指的是标签在页面中默认的派不规则&#xff0c;例如&#xff1a;块元素独占一行&#xff0c;行内元素可以一行显示多个。 但是很多的网页布局都是块元素在一行中显示的&#xff0c;这时候就需要浮动和 Flex 布局&#xff0c;浮动只需要了解…

【Java基础系列】JavaWeb入门

&#x1f49d;&#x1f49d;&#x1f49d;欢迎来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…

【LeetCode】2629. 复合函数

复合函数 题目题解 题目 请你编写一个函数&#xff0c;它接收一个函数数组 [f1, f2, f3&#xff0c;…&#xff0c; fn] &#xff0c;并返回一个新的函数 fn &#xff0c;它是函数数组的 复合函数 。 [f(x)&#xff0c; g(x)&#xff0c; h(x)] 的 复合函数 为 fn(x) f(g(h(x…

MYSQL练题笔记-高级查询和连接-最后一个能进入巴士的人

一、题目相关内容 1&#xff09;相关的表和题目 2&#xff09;帮助理解题目的示例&#xff0c;提供返回结果的格式 二、自己初步的理解 一群人要上巴士但是巴士有体重限制&#xff0c;那只能有限个人才能上去 最后输出这个最后一个上去还不超重的人的名字 我认为首先要缩小…

Java+Swing: 登录和重置按钮的点击事件 整理6

1. 在Login类中给按钮添加事件 // 按钮添加鼠标点击事件loginButton.addActionListener();resetButton.addActionListener(); 2. 创建一个事件处理的类&#xff0c; 该类实现了ActionListener package com.handler;/*** Author&#xff1a;xiexu* Date&#xff1a;2023/12/7 13…

K8S 删除命令空间时 一直卡住怎么办?

当使用完一个命名空间后&#xff0c;想删除了又删除不掉&#xff0c;这个时候查看命名空间的状态一直是Terminating。使用强制删除&#xff0c;也是还是不行。&#xff08;找了好多办法都不行&#xff09; [rootk8s-master kubernetes-yaml]# kubectl delete ns mem-example Er…

3DMAX UV贴图修改插件安装卸载方法

3DMAX UV贴图修改插件安装卸载方法 3dMax贴图修改插件PolyUnwrapper是为纹理艺术家设计的一整套专业工具&#xff0c;尤其适用于建筑和游戏行业。 它包含许多功能&#xff0c;将大大帮助您改进UV展开的工作流程。 【主要功能特点】 -多重缝合。一次缝合多个壳 -自定义打包算…

MTTS | 多语言多人的VITS语音合成项目实现

----------------------------------&#x1f5e3;️ 语音合成 VITS相关系列直达 &#x1f5e3;️ ------------------------------------- &#x1fae7;VITS &#xff1a;TTS | 保姆级端到端的语音合成VITS论文详解及项目实现(超详细图文代码) &#x1fae7;MB-iSTFT-VITS&am…

2024年江苏省职业院校技能大赛 信息安全管理与评估 第二阶段教师组 (样卷)

2024年江苏省职业院校技能大赛 信息安全管理与评估 第二阶段教师组 (样卷) 项目竞赛样题 本文件为信息安全管理与评估项目竞赛-第二阶段样题&#xff0c;内容包括&#xff1a;网络安全事件响应、数字取证调查、应用程序安全。 本次比赛时间为180分钟。 介绍 GeekSec专注技能竞…

Java聊天程序(一对一)简单版

我们首先要完成服务端&#xff0c;不然出错&#xff0c;运行也要先运行服务端&#xff0c;如果不先连接服务端&#xff0c;就不监听&#xff0c;那客户端不知道连接谁 服务端 import java.awt.BorderLayout; import java.awt.event.ActionEvent; import java.awt.event.Actio…

常见数据同步工具之实时同步

实时数据同步是现代数据处理中非常重要的一环。在常见的数据同步工具中&#xff0c;Flume、Flink CDC和DataX都是非常受欢迎的选择。它们各自有自己的工作原理、优势和劣势。 Flume主要用于日志传输&#xff0c;简单易用但对特定数据源可能有限&#xff1b;Flink CDC基于CDC技术…

jQuery ajax读取本地json文件 三级联动下拉框

步骤 1&#xff1a;创建本地JSON文件 {"departments": [{"name": "会计学院","code": "052"},{"name": "金融学院","code": "053"},{"name": "财税学院",&qu…

基于若依的ruoyi-nbcio流程管理系统支持支持定时边界事件和定时捕获事件

更多ruoyi-nbcio功能请看演示系统 gitee源代码地址 前后端代码&#xff1a; https://gitee.com/nbacheng/ruoyi-nbcio 演示地址&#xff1a;RuoYi-Nbcio后台管理系统 1、定时边界事件 <template><div class"panel-tab__content"><!--目前只处理定…

【Java系列】详解多线程(一)

个人主页&#xff1a;兜里有颗棉花糖 欢迎 点赞&#x1f44d; 收藏✨ 留言✉ 加关注&#x1f493;本文由 兜里有颗棉花糖 原创 收录于专栏【Java系列专栏】 本专栏旨在分享学习Java的一点学习心得&#xff0c;欢迎大家在评论区交流讨论&#x1f48c; 目录 一、背景引入二、线程…