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

embedded/2024/12/23 14:17:23/
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. 1.自动化测试环境搭建三要素:

  2. 1.python环境

  3. 2.selenium框架:pip install selenium

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

  5. 4.Chrome浏览器

  1. 2.#selenium安装与Chromedriver

  2. #下载安装selenium:

  3. pip install selenium

  4. #chromedriver下载匹配:

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

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

AI助手

  1. #3.配置成功验证

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

  3. #编写如下代码:

  4. from selenium import webdriver

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

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

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

  8. #注意:

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

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

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

  2. Selenium的8定位元素方法:

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

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

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

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

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

from selenium import webdriver

  1. import time

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

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

  4. time.sleep(3)

  5. #根据id

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

  7. # time.sleep(3)

  8. <br>#根据class属性

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

  10. # time.sleep(3)

  11. <br>#根据name

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

  13. # time.sleep(3)

  14. <br>#根据标签

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

  16. # time.sleep(3)

  17. #根据超链接部分文本

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

  19. # time.sleep(3)

  20. #根据超链接文本

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

  22. # time.sleep(3)

  23. bowser.quit()

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

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

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

  4. browser.find element by idid属性值

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

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

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

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

  9. python

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

  11. browser.find element by tag name(div")

link text与partail link text定位
  1. link text;根据超链接的文本定位

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

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


http://www.ppmy.cn/embedded/148084.html

相关文章

WPF 依赖属性和附加属性

除了普通的 CLR 属性&#xff0c; WPF 还有一套自己的属性系统。这个系统中的属性称为依赖属性。 1. 依赖属性 为啥叫依赖属性&#xff1f;不叫阿猫阿狗属性&#xff1f; 通常我们定义一个普通 CLR 属性&#xff0c;其实就是获取和设置一个私有字段的值。假设声明了 100 个 …

xcode15 报错 does not contain ‘libarclite‘

新建pod私有库 在xcode15 无法运行 报错 SDK does not contain libarclite at the path /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/arc/libarclite_iphoneos.a; try increasing the minimum deployment target 下载 资源文件…

基于单片机的非接触式红外测温系统

功能介绍 采用51单片机作为主控系统&#xff1b; 通过MLX90614红外测温模块&#xff0c;精准测量温度&#xff1b; 通过红外传感器反应是否有人体靠近&#xff0c;靠近后开始测温&#xff1b; 通过TTS语音模块播报温度&#xff1b; 通过按键可以调节温度阀值通过LCD1602显示模块…

qqmusic for linux 启动闪退解决办法

出现问题&#xff1a;安装了双系统之后&#xff0c;想在linux物理机上安装qq音乐之后&#xff0c;但是启动发现闪退 我的系统是Zorin&#xff0c;基于Ubuntu的linux系统 解决办法是修改配置文件 文件位置&#xff1a;/usr/share/applications/qqmusic.desktop sudo vim /u…

新能源汽车充电需求攀升,智慧移动充电服务有哪些实际应用场景?

在新能源汽车行业迅猛发展的今天&#xff0c;智慧充电桩作为支持这一变革的关键基础设施&#xff0c;正在多个实际应用场景中发挥着重要作用。从公共停车场到高速公路服务区&#xff0c;从企业园区到住宅小区&#xff0c;智慧充电桩不仅提供了便捷的充电服务&#xff0c;还通过…

如何实现单例模式?

概念 单例模式&#xff08;Singleton Pattern&#xff09;是一种设计模式&#xff0c;确保一个类只有一个实例&#xff0c;并提供一个全局访问点。它常用于需要控制资源访问的场景&#xff0c;如数据库连接、日志记录或者配置管理等。 方式 懒汉式单例 懒汉式单例是在第一次…

工厂常用软件系统大全中英文全称对照表及功能介绍应用场景ERP MES WMS SCADA IOT SAP等软件系统介绍

1. ERP&#xff08;Enterprise Resource Planning&#xff09;企业资源计划&#xff1a; ○ 功能&#xff1a;整合企业的各项资源和业务流程&#xff0c;涵盖从采购、生产到销售的各个环节。包括财务管理、生产计划、采购管理、库存管理、销售管理、人力资源管理等。 ○ 应用场…

使用Laravel构建你的第一个Web应用

使用Laravel构建你的第一个Web应用 Laravel是一个现代化的PHP框架&#xff0c;以其优雅的语法和强大的功能而闻名。它提供了许多内置工具和功能&#xff0c;使得开发Web应用变得更加高效和便捷。本文将指导你如何使用Laravel构建你的第一个Web应用&#xff0c;涵盖环境设置、项…