初识web自动化测试

news2024/11/10 19:02:45
自动化
说明
  • 让机器设备代替人为完成指定目标的而过程
优点
  1. 减少劳动力
  2. 提高效率(批量生产)
  3. 提高产品质量
  4. 规格统一标准
自动化测试
  • 概念 : 让程序代替人工去验证系统功能的过程
自动化测试能解决什么问题?
  1. 解决-回归测试 [重点]
  2. 解决-压力测试
  3. 解决-兼容性测试 (1.浏览器、2.分辨率3.操作系统 )
  4. 提高测试效率,保证产品质量

相关知识

优点

  1. 较少的时间内运行更多的测试用例;
  2. 自动化脚本可重复运行;
  3. 减少人为的错误;
  4. 克服手工测试的局限性;(图片大小)

缺点

  1. 自动化测试可以完全替代手工测试;
  2. 自动化测试一定比手工测试厉害;
  3. 自动化测试可以发掘更多的BUG;
  4. 自动化测试适用于所有功能;

分类

  1. web-自动化测试(本阶段学习)
  2. 移动-自动化测试(app-自动化)
  3. 接口-自动化测试(工具、代码)
  4. 单元测试-自动化测试
Web自动化测试
定义
  • 概念:让程序代替人工自动验证web项目功能的过程
什么Web项目适合做自动化测试?
  1. 需求变动不频繁
  2. 项目周期长
  3. 项目需要回归测试

Web自动化测试在什么阶段开始?
  • 功能测试完毕(手工测试)
    • 此时开始的原因:1.时间问题 2.功能不完善
所属分类
  • 以下分类为站在代码可见度上划分
  1. 黑盒测试(功能测试)
    • web自动化测试属于黑盒测试(功能测试)
  2. 白盒测试(单元测试)
  3. 灰盒测试(接口测试)
Web自动化测试工具选择
主流的Web自动化测试工具
  1. QTP
    QTP 是一个商业化的功能测试工具,收费,支持web,桌面自动化测试。

  2. Selenium(本阶段学习)
    Selenium 是一个开源的web自动化测试工具,免费,主要做功能测试。

  3. Robot framework
    Robot Framework是一个基于Python可扩展地关键字驱动的测试自动化框架。

Selenium
概念
  • Selenium是一个用于web应用程序的自动化测试工具
特点
  • 开源软件:源代码开放可以根据需要来增加工具的某些功能
  • 跨平台: linux、windows、mac
  • 支持多种浏览器: Firefox、Chrome、IE、Edge、Opera、Safari等
  • 支持多种语言:Python、Java、C#、JavaScript、Ruby、PHP等
  • 成熟稳定:目前已经被google、百度、腾讯等公司广泛使用
  • 功能强大:能够实现类似商业工具的大部分功能,因为开源性,可实现定制化功能
环境搭建

基于Python环境搭建

  1. Python开发环境
  2. 安装selenium包
  3. 安装浏览器
  4. 安装浏览器驱动--保证能够用程序驱动浏览器,实现自动化测试

安装selenium包

前提: Python3安装完毕且能正常运行

PIP工具

  • pip是一个通用的Python 包管理工具,提供了对Python 包的查找、下载、安装、卸载的功能。

安装

pip install selenium

卸载

pip uninstall selenium

扩展

  • 安装指定版本pip install seleniur==版本号
  • 如: pip install selenium==2.48.0
  • 如何查看可安装按本? 指定版本号为错误版本号
  • pip是python中包管理工具(可以安装,卸载、查看python工具)
  • pip list:查看通过pip包管理工具安装的插件或工具

提示

  1. 使用pip必须联网
  2. 默认安装python3.5版本以上工具,自带pip包管理(江工具,默认会自动安装并且添加path环境变量

驱动下载

  • 找对应网站

通过Pycharm安装 【推荐】

  • 推荐原因:安装到当前工程环境内。
  • 操作:
    File(文件菜单)-->setting-->Project:当前工程名称-->Project Interpreter-- 点击+号安装相应包和版本

path

  • 说明:指定系统搜索的目录dos命令默认搜索顺序:
    1.检测是否为内部命令

    2.检测是否为当前目录下可执行文件

    3.检测path环境变量指定的目录

    提示:

  • 如果以上搜索目录都检测不到输入的命令或可执行文件,系统会抛出不是内部或外部命令...

  • 在web环境中,如果不将浏览器驱动添加到path中,selenium在运行的时候会提示浏览器驱动有误。

案例
  • 通过程序启动浏览器,并打开百度首页,暂停3秒,关闭浏览器通过程序启动浏览器,并打开百度首页,暂停3秒,关闭浏览器


# 导包

from time import sleep

from selenium import webdriver


# 获取 火狐浏览器对象

driver = webdriver.Firefox()

# URL 打开百度

driver.get('http://www.baidu.com')

# 暂停3秒

sleep(3)


#退出浏览器驱动

driver.quit()

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

这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!

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

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

相关文章

WookTeam searchinfo SQL注入漏洞复现

0x01 产品简介 WookTeam是一款轻量级的在线团队协作工具,提供各类文档工具、在线思维导图、在线流程图、项目管理、任务分发,知识库管理等工具。 0x02 漏洞概述 WookTeam /api/users/searchinfo 接口存在SQL注入漏洞,未经身份验证的恶意攻击者利用 SQL 注入漏洞获取数据库…

一行实现88个群智能算法优化混合核极限学习机HKELM的多特征输入单输出的数据回归预测Matlab程序全家桶

一行实现88个群智能算法优化混合核极限学习机HKELM的多特征输入单输出的数据回归预测Matlab程序全家桶 文章目录 前言一行实现88个群智能算法优化混合核极限学习机HKELM的多特征输入单输出的数据回归预测Matlab程序全家桶 一、HKELM模型1. 极限学习机(ELM&#xff0…

【启明智显技术分享】半导体存储全解析:SRAM、DRAM、NAND、eMMC、UFS、eMCP、uMCP、DDR、LPDDR

Model4芯片是一款高性能的全高清显示和智能控制SOC,采用国产自主 64 位高算力 RISC-V 内核,提供了丰富的互联外设接口,具备大容量存储和极强的扩展性。片内存储BROM 32KB、SRAM 96KB以及DRAM SiP 16bit KGD(两种规格可选&#xff…

掌握这招,Python帮你快速整理文件!

更多资料获取 📚 个人网站:ipengtao.com 在日常工作中,经常需要处理大量的通知文件。这些文件可能以不同的格式和命名规则存在,需要花费大量时间和精力去整理和分类。Python作为一门功能强大的编程语言,可以自动化这一…

学习嵌入式入门(十)高级定时器简介及实验(下)

一、高级定时器互补输出带死区控制实验 上图中,CH1 输出黄色的 PWM,它的互补通道 CH1N 输出绿色的 PWM。通过对比,可以 知道这两个 PWM 刚好是反过来的,CH1 的 PWM 为高电平期间,CH1N 的 PWM 则是低电平, 反…

Linux下 vim的用法

目录 前言 一、初始Vim 二、使用Vim 1.1命令模式 2.1底行模式 3.1插入模式 前言 提示:这里可以添加本文要记录的大概内容: 本篇文章会介绍vim的基本用法和为什么我们要学习vim。 提示:以下是本篇文章正文内容,下面案例可供…

计算机网络——HTTP协议详解(上)

一、HTTP协议简单介绍 1.1 什么是HTTP协议 HTTP(超文本传输协议)是一种用于在Web浏览器和Web服务器之间传输数据的应用层协议。它是一种无状态协议,即服务器不会保留与客户端的任何连接状态信息,每个请求都被视为一个独立的事务。…

Echarts饼图7.0:图例自定义+取消高亮时放大的状态

1、源代码: let seriseData [{ value: 1048, name: Search Engine },{ value: 735, name: Direct } ] option {color: [#5D9AF1, #D6D6D6],tooltip: {trigger: item,backgroundColor: rgba(0,0,0,0.4),borderColor: transparent,formatter: (item) > {consol…

使用Arduino IDE生成带有bootloader的烧录文件

使用Arduino IDE生成bin(烧录)文件 1、在“项目”中,选择“导出已编译的二进制文件” 2、在工程目录中,会出现“build”文件夹 3、在build文件夹中,有hex文件,以及包含bootloader的bin和hex文件 bin和h…

ArkUI---Swiper、Grid、List组件简单介绍

前言:ForEach ForEach语法如下: ForEach(arr: Array,itemGenerator: (item: Array, index?: number) > void,keyGenerator?: (item: Array, index?: number) : string > string ) 参数1:数据源,为Array的数组 参数2&am…

【51单片机】让AI识别电路图,帮你进行编码(以51单片机为例)

让AI识别电路图,帮你进行编码(以51单片机为例) ​ 这里使用的AI大模型使用的是 Copilot。(两个前提:1. 科学上网、2. 有微软账号) 今天测试了一下Copilot识别图片的能力,能力还是可圈可点的。 首先准备一…

react-antive 項目報錯 [CXX1429] error when building with cmake using

react-antive 項目報錯 [CXX1429] error when building with cmake using修复 错误现场分析原因解决方案举一反三技巧引用参考(感谢作者提供思路) 错误现场 [CXX1429] error when building with cmake using /Users/sebastiangarcia/Desktop/work/flm/…

基于spring boot的校园商铺管理系统

TOC springboot188基于spring boot的校园商铺管理系统 第1章 绪论 1.1 研究背景 互联网概念的产生到如今的蓬勃发展,用了短短的几十年时间就风靡全球,使得全球各个行业都进行了互联网的改造升级,标志着互联网浪潮的来临。在这个新的时代&…

springboot颐养居家养老管理系统---附源码19707

摘 要 随着社会的快速发展和人口老龄化趋势的加剧,居家养老已成为越来越多老年人的选择。然而,传统的居家养老方式面临着诸多问题,如服务质量不稳定、信息不对称等。为了解决这些问题,提高居家养老的服务质量和效率,我…

[mysql] 一行变多行

数据表 CREATE TABLE table_main (ID char(36) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci NOT NULL,zb_list_str text CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci ,kf_list_str text CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci,PRIMARY KEY (ID) USI…

在宝塔面板下安装WordPress

宝塔面板是服务器管理好助手,尤其在Linux系统下,提高了管理的可视化,降低了Linux服务器的使用门槛。 WordPress是个非常好的博客系统,由于支持海量主题模板、各种类型的插件,因此已经成为建设各类网站的首选框架。 今…

java 获取request中的json请求体

Java 获取request中的json请求体 简介 在Java开发中,有时我们需要从HTTP请求中获取JSON格式的数据。本文将详细介绍如何在Java中获取request中的json请求体。 流程概览 以下是获取request中的json请求体的整体流程: 步骤 描述 1 获取HttpServletReque…

代码规范 —— 并发编程规范

优质博文:IT-BLOG-CN 【1】【强制】获取单例对象需要保证线程安全,其中的方法也要保证线程安全。 说明: 资源驱动类、工具类、单例工厂类都需要注意。 【2】【强制】创建线程或线程池时请指定有意义的线程名称,方便出错时回溯。…

Adobe Illustrator 2023 for Mac/Win:创意设计的强大引擎

Adobe Illustrator 2023(简称AI 2023)是一款专为设计师打造的矢量图形编辑软件,无论是Mac还是Windows平台,它都以其卓越的性能和丰富的功能赢得了业界的广泛赞誉。这款软件在设计领域具有举足轻重的地位,为设计师们提供…

算法的学习笔记—删除链表中重复的结点(牛客JZ76)

😀前言 在链表操作中,删除重复节点是一个常见的问题。特别是在排序链表中,连续的重复节点不仅会影响链表的结构,还会带来额外的复杂度。本文将介绍一种高效的算法,用于删除链表中所有重复的节点,并保留链表…