UI自动化概念+Web自动化测试框架

news2024/11/19 19:34:50

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项目需要回归测试:项目需要回归测试,当测试一遍后,再次回归是可以直接通过自动化脚本进行回测

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

2

3

4

5

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



1.python环境

2.selenium框架:pip install selenium

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

4.Chrome浏览器

1

2

3

4

5

6
2.#selenium安装与Chromedriver

#下载安装selenium:

pip install selenium

#chromedriver下载匹配:

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

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

1

2

3

4

5

6

7

8

9

10

11

12

13
#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.元素定位(一)

1

2

3

4

5

6

7

8
在使用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解析器
1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32
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定位

1

2

3

4

5

6

7

8

9

10

11

12

13
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定位

1

2

3

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

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



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

Python接口自动化测试零基础入门到精通(2023最新版)

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

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

相关文章

【LVS实战】01 LVS介绍

一、LVS是什么 LVS&#xff08;Linux Virtual Server&#xff09;&#xff0c;是一个极好的负载均衡解决方案&#xff0c;它将一个真实服务器集群虚拟成一台服务器来对外提供服务&#xff0c;同时在真实服务器集群中实现了负载均衡。该技术由章文嵩博客发起&#xff0c;从linu…

无公网IP,如何使用公网SSH远程访问家中的树莓派?

文章目录 前言如何通过 SSH 连接到树莓派步骤1. 在 Raspberry Pi 上启用 SSH步骤2. 查找树莓派的 IP 地址步骤3. SSH 到你的树莓派步骤 4. 在任何地点访问家中的树莓派4.1 安装 Cpolar内网穿透4.2 cpolar进行token认证4.3 配置cpolar服务开机自启动4.4 查看映射到公网的隧道地址…

Android NDK开发详解之ndk-build 脚本

Android NDK开发详解之ndk-build 脚本 内部原理从命令行调用选项可调试 build 与发布 build要求 ndk-build 脚本使用 NDK 的基于 Make 的构建系统构建项目。我们针对 ndk-build 使用的 Android.mk 和 Application.mk 配置提供了更具体的文档。 内部原理 运行 ndk-build 脚本相…

联想电脑怎么录屏?两个实用方法,快速搞定

“联想电脑怎么录屏呀&#xff1f;刚买的联想电脑&#xff0c;本来打算用来直播&#xff0c;但是现在发现不会录屏&#xff0c;上网查了很久也没有解决方法&#xff0c;真的很头疼&#xff0c;希望大家帮帮我&#xff01;” 联想是世界知名的电子产品制造商之一&#xff0c;它…

数据集成实现以及平台安装部署入门

ETLCloud是什么?** ETLCloud是一个提供了一套工具和服务的数据集成平台&#xff0c;用于将数据从不同的来源抽取&#xff08;Extract&#xff09;、转换&#xff08;Transform&#xff09;和加载&#xff08;Load&#xff09;到目标系统中。ETL代表了这个过程的三个主要步骤。…

Mybatis—XML配置文件、动态SQL

学习完Mybatis的基本操作之后&#xff0c;继续学习Mybatis—XML配置文件、动态SQL。 目录 Mybatis的XML配置文件XML配置文件规范XML配置文件实现MybatisX的使用 Mybatis动态SQL动态SQL-if条件查询 \<if\>与\<where\>更新员工 \<set\>小结 动态SQL-\<forea…

空气质量查询API促使空气数据可视化

引言 在当今的现代化社会中&#xff0c;关注和改善空气质量已成为人们共同的关切。随着科技的不断发展&#xff0c;空气质量查询API为我们提供了一种前所未有的方式来实时监测、分析和改善我们所处的环境。这一工具不仅让我们更深入地了解空气质量&#xff0c;还鼓励了空气数据…

组件化npm包打包和使用

背景&#xff1a;本地环境对功能组件提取&#xff0c;开发环境下通过本地路径引用&#xff0c;发布模式下走npm包引用 1、项目下新建packages/HelloWorld文件夹&#xff0c;在此文件夹下运行终端 npm init 新建packages/HelloWorld/index.vue文件 新建packages/HelloWorld/ind…

Realrek 2.5G交换机 8+1万兆光RTL8373-VB-CG方案简介

新一代2.5G交换机方案RTL8373-VB-CG可以提供4中不同形态 a. 52.5G 电口110G光》RTL8373 b. 52.5G 电口110G电》RTL83738261 c. 82.5G 电口110G光》RTL83738224 d.82.5G 电口110G电口》RTL837382248261 1.概述 Realtek RTL8373-CG是一款低功耗、高性能、高度集成的八端口2.5G和一…

关于集合遇到的坑

public void invoke(ComparisonSpotEvaluationResultsExcel comparisonSpotEvaluationResultsExcel, AnalysisContext analysisContext) {/*** 记录行号码*/ReadRowHolder readRowHolder analysisContext.readRowHolder();Integer rowIndex readRowHolder.getRowIndex();Stri…

小程序开发——小程序项目的配置与生命周期

1.app.json配置属性 app.json配置属性 2.页面配置 app的页面配置指的是pages属性&#xff0c; pages数组的第一个页面将默认作为小程序的启动页。利用开发工具新建页面时&#xff0c;则pages属性对应的数组将自动添加该页面的路径&#xff0c;若是在硬盘中添加文件的形式则不…

连接数据库加密方式

首先需要一个加密的类&#xff0c;我们这里使用的是RSAUtil类&#xff1a; package com.ebs.common.util;import org.apache.commons.codec.binary.Base64; import org.springframework.stereotype.Component;import javax.crypto.Cipher; import java.io.ByteArrayOutputStre…

Selenium3-获取元素的css属性

来个元素CSS值 代码1: 通过javaScript执行脚本获取css值 String jsStr "return document.getElementById(\"buyers\").style.getPropertyValue(width)"; Object o ((JavascriptExecutor) driver).executeScript(jsStr); System.out.println(o.toString(…

webJL

3D开发初体验&#xff0c;入门教程 效果图&#xff1a; 结合VUE的实现代码&#xff1a; <template><view class""><view id"aaa" ref"webglContainer"></view></view> </template><script>import *…

谈思生物医疗直播 | 霍德生物研发中心负责人王安欣博士“iPSC衍生神经细胞产品全悬浮自动化工艺及特殊质控方法开发”

iPSC通过人体来源的终端体细胞重编程而来&#xff0c;其衍生细胞产品的生产与质控面临着诸多挑战&#xff0c;但也解决了许多自体细胞治疗的不稳定性和高成本等产业化难点。例如自体细胞不仅供体之间的差异对产品质量可能造成影响&#xff0c;即使同一个供体&#xff0c;体细胞…

纯css实现手机端loading

纯css实现手机端loading <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8" /><meta http-equiv"X-UA-Compatible" content"IEedge" /><meta name"viewport" content"wid…

3D网页游戏外包开发引擎

3D网页开发引擎是用于创建具有三维图形、虚拟现实和交互性的网页应用程序的工具。以下是一些常用的3D网页开发引擎以及它们的主要特点&#xff0c;希望对大家有所帮助。北京木奇移动技术有限公司&#xff0c;专业的软件外包开发公司&#xff0c;欢迎交流合作。 1.Three.js&…

内置视图联动查看器,实现数据关联分析

前言 在数据驱动业务发展的今天&#xff0c;数据的关联分析变得越来越重要。作为一种强大的数据挖掘工具&#xff0c;它可以帮助企业发现数据之间的关联和模式&#xff0c;从而更好地理解市场和客户的行为。通过关联分析&#xff0c;企业可以发现看似无关的数据之间的联系&…

Android NDK开发详解之Application.mk探秘

Android NDK开发详解之Application.mk探秘 概览变量APP_ASFLAGSAPP_ASMFLAGSAPP_BUILD_SCRIPTAPP_CFLAGSAPP_CLANG_TIDYAPP_CLANG_TIDY_FLAGSAPP_CONLYFLAGSAPP_CPPFLAGSAPP_CXXFLAGSAPP_DEBUGAPP_LDFLAGSAPP_MANIFESTAPP_MODULESAPP_OPTIMAPP_PLATFORMAPP_PROJECT_PATHAPP_STL…

怎么实现在外远程访问连接家里内网的威联通NAS?

文章目录 前言1. 威联通安装cpolar内网穿透2. 内网穿透2.1 创建隧道2.2 测试公网远程访问 3. 配置固定二级子域名3.1 保留二级子域名3.2 配置二级子域名 4. 使用固定二级子域名远程访问 前言 购入威联通NAS后&#xff0c;很多用户对于如何在外在公网环境下的远程访问威联通NAS…