软件测试进阶

目录

一、自动化测试

1.概念

2.Selenium

2.1 概念

2.1.1 Selenium是什么?

2.1.2 Selenium特点

2.1.3 工作原理

2.2 Selenium+Java环境搭配

2.3 定位元素

2.3.1 CSS语法

2.3.2 XPath语法

2.4 应用

2.4.1 点击提交文本

2.4.2 模拟输入

2.4.3 清除文本

2.4.4 获取文本信息

2.4.5 等待

2.4.5.1 sleep强制等待

2.4.5.2 隐式等待

2.4.5.3 显示等待

2.4.6 获取标题

2.4.7 获取url

2.4.8 浏览器操作

2.4.9 切换页面

2.4.10 键盘事件

2.4.11 鼠标事件

2.4.12 多层窗口

2.4.13 下拉框

2.4.14 alert弹窗

2.4.15 上传文件

2.4.16 截图

3.Junit

3.1 概念

3.2 配置

3.3 应用

3.3.1 @Test

3.3.2 @Disabled

3.3.3 @BeforeAll,@AfterAll,@BeforeEach,@AfterEach

3.4 参数化

3.4.1 单参数、CSV获取参数、方法获取参数、多参数

3.4.2 执行顺序

3.4.2.1 @Order(第几个执行)

3.4.2.2 测试顺序随机

3.4.3 断言

3.5 测试套件

二、性能测试

1.概念

1.1 什么是性能测试

1.2 影响一个软件性能因素

1.3 性能测试常见的术语和性能测试衡量指标

1.3.1 并发

1.3.2 用户

1.3.3 响应时间

1.3.3.1 用户响应时间

1.3.3.2 请求响应时间

1.3.3.3 事务响应时间

1.3.4 每秒事务通过数量

1.3.5 点击量

1.3.6 点击率

1.3.7 吞吐量

1.3.8 吞吐率

1.3.9 思考时间

1.3.10 资源利用率

1.4 性能分类

1.4.1 基准性能测试

1.4.2 负载性能测试

1.4.3 压力性能测试

1.4.4 可靠性能测试

1.5 性能测试执行流程

1.6 LoadRunner


一、自动化测试

1.概念

什么是自动化测试?

自动化测试就相当于人工测试的手段进行转换,让代码去执行

自动化测试的分类有哪些?

单元测试、接口测试、UI自动化测试

2.Selenium

2.1 概念

2.1.1 Selenium是什么?

是用来做Web自动化测试框架

2.1.2 Selenium特点

支持各种浏览器,支持各种平台,支持各种语言(Python,Java,C#......),有丰富的api

2.1.3 工作原理

2.2 Selenium+Java环境搭配

需要下载浏览器对于的,放在c盘对应的目录下

在idea中pom文件中需要引入依赖

2.3 定位元素

定位元素的方法有很多,这里只讲述两种,CSS和XPATH

定位元素findElement

2.3.1 CSS语法

id选择器:#id

类选择器:.c

2.3.2 XPath语法

绝对路径:从根开始 /html/……. (不建议使用)

相对路径://

相对路径+索引: //from/span[2]/input

相对路径+属性值://input[@class="s_ipt" and @id=""]

相对路径+通配符://*[@*="su"]

相对路径+文本匹配: //a[text()="新闻"]

2.4 应用

2.4.1 点击提交文本

click()

2.4.2 模拟输入

sendKeys("")

2.4.3 清除文本

要清除文本的前提是输入文本

2.4.4 获取文本信息

getText()

2.4.5 等待
2.4.5.1 sleep强制等待

如果等待的时间为3天,强制等待则一定会等待三天

2.4.5.2 隐式等待

隐式等待在达到预期效果后就不会等待了,但是前提是将页面上所有的元素都加载出来。在等待结束之前,没有加载出全部元素,就会报错。

2.4.5.3 显示等待

显示等待不需要加载出全部元素,只要所需要的元素达到预期,就结束等待。

2.4.6 获取标题

getTitle()

2.4.7 获取url

getCurrentUrl()

2.4.8 浏览器操作

1.浏览器前进

2.浏览器后退

3.浏览器滚动条

4.浏览器大小

关闭浏览器

quit直接直接关闭整个浏览器,清空缓存

close只关闭webdriver窗口,不会清空缓存

2.4.9 切换页面

2.4.10 键盘事件

2.4.11 鼠标事件

2.4.12 多层窗口

2.4.13 下拉框

2.4.14 alert弹窗

2.4.15 上传文件

2.4.16 截图

需要提前引入依赖

3.Junit

3.1 概念

Selenium自动化测试框架

Junit单元测试框架

Junit控制Selenium

Junit是针对Java的一个单元测试框架

利用注解

3.2 配置

前提是引入依赖,才能引入注解

3.3 应用

3.3.1 @Test

表示当前的方法是一个测试用例

3.3.2 @Disabled

表示这个测试用例不跑,跳过,忽略

3.3.3 @BeforeAll,@AfterAll,@BeforeEach,@AfterEach

BeforeAll是在所有的测试用例运行之前跑对应的方法

BeforeEach是在每个测试用例用例之前跑对应的方法(有几个测试用例就跑几次)

AfterAll是在所有的测试用例运行之后跑对应的方法

AfterEach是在每个测试用例用例之后跑对应的方法(有几个测试用例就跑几次)

3.4 参数化

前提也得引入依赖

3.4.1 单参数、CSV获取参数、方法获取参数、多参数

3.4.2 执行顺序

Junit有自己的测试顺序,如果想改正,需要手动设置

3.4.2.1 @Order(第几个执行)

注意一定也得写@TestMethodOrder(MethodOrderer.OrderAnnotation.class)告诉不需要按照顺序执行,可以自己设定

3.4.2.2 测试顺序随机

3.4.3 断言

断言相等

断言不相等

断言为空

断言不为空

3.5 测试套件

通过class运行测试用例

通过包运行测试用例

二、性能测试

1.概念

1.1 什么是性能测试

测试人员借助性能测试工具,模拟系统在不同场景下,对应的性能指标是否达到预期

功能测试:不管在什么场景下,只要能够正常运行即可

性能测试:软件在一些极端情况下,是不是能够正常运行

1.2 影响一个软件性能因素

硬件:服务器CPU利用率,内存,磁盘操作频率,CPU核心数

软件:算法,编程语言

用户:用户数量,用户使用时长,用户使用频率

1.3 性能测试常见的术语和性能测试衡量指标

1.3.1 并发

必须满足条件:1.需要有大量用户2.对系统请求(同时间)

1.3.2 用户

系统用户数:系统注册的用户

在线用户数:成功登录系统用户数

并发用户数:大量的用户访问系统,此时访问的用户数,就是并发用户数(满足了并发条件后,对应的用户数量)

1.3.3 响应时间
1.3.3.1 用户响应时间

N1+A1+N2+A2+N3+A3+N4

1.3.3.2 请求响应时间

服务器收到请求到发出响应这段时间就是请求响应时间

A1+N2+A2+N3+A3

影响一个软件响应时间的因素有哪些

数据库性能,网络带宽,服务器处理性能,软件算法,逻辑,用户设备

1.3.3.3 事务响应时间

事务:业务上独立的一个操作

业务度量的基本单位

358定律

1.3.4 每秒事务通过数量

处理的事务数量/事务花费的时间

每秒事务通过的数量越多自然说明软件性能越好的

1.3.5 点击量

用户点击数量

1.3.6 点击率

点击量/时间

1.3.7 吞吐量

用户一次请求和服务器之间的数据交互量

1.3.8 吞吐率

吞吐量/时间

1.3.9 思考时间

用户在对软件进行操作的时候,每一个操作有中间时间间隔

1.3.10 资源利用率

面试题:你了解性能测试,那么你给我说说你做性能测试,都关注哪些指标?

1.4 性能分类

1.4.1 基准性能测试

定义:

让系统在正常情况下运行,观察软件的性能指标

应用场景:

软件刚上线需要进行性能摸底

1.4.2 负载性能测试

验证软件在一定压力的情况下运行,观察性能指标是否出现了拐点

1.4.3 压力性能测试

系统处于饱和情况下,观察系统性能指标(往往会把系统搞崩溃)

1.4.4 可靠性能测试

系统在一个持续的时间段内运行,在这个运行时间段,观察系统各项性能指标是否正常

1天 -> 1周 -> 1月 -> 1季度 -> 1年

1.5 性能测试执行流程

功能测试执行流程:需求分析->测试计划->测试设计->测试执行->测试评估->上线

性能测试执行流程:需求分析->测试计划->选择一款性能测试工具->性能测试脚本编写->执行性能测试脚本->产出一个性能测试报告

性能测试中出现了不符合预期的情况,我们不叫bug,它叫性能瓶颈

在性能测试中,出现了性能瓶颈,开发修复的过程,叫它优化

1.6 LoadRunner

工具:LoadRunner  针对需求编写脚本

性能测试在功能测试完成之后才能测试

VUG:录制脚本(编写脚本)

Controller:设计场景,运行场景

Analysis:产出性能测试报告

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

驰骋低代码开发平台概念与主张

驰骋低代码开发平台概念与主张 一、引言 在数字化转型的浪潮中,低代码开发平台因其高效、灵活、成本效益显著的特点,逐渐成为企业快速构建应用系统的首选。作为国内领先的开源低代码开发平台,驰骋低代码致力于为企业和开发者提供一套全面、…

(南京观海微电子)——屏幕材质及优缺点对比

LED/LCD LCD(Liquid Crystal Ddisplay)即“液晶显示器”,由两块偏光镜、两块薄膜晶体管以及彩色滤光片、光源(荧光灯)、显示面板组成的成像元器件。 LED(Light Emitting Diode)即“发光二极管…

冒泡排序与快速排序

博主主页: 码农派大星. 数据结构专栏:Java数据结构 数据库专栏:MySQL数据库 关注博主带你了解更多数据结构知识 1.冒泡排序 冒泡排序 private static void swap(int[] arrary,int i,int j){int tmp arrary[i];arrary[i] arrary[j];arrary[j] tmp;public static void bubbl…

[docker] docker 安全知识 - docker api, 权限提升 资源管理

[docker] docker 安全知识 - docker api, 权限提升 & 资源管理 这是 docker 安全的最后一篇 暴露 docker api 在 [docker] docker 安全知识 - docker 系统性简介 中曾经提到,docker cli 使用 restful api 与客户端和 docker daemon 之间交流。默认情况下&…

国内的期权模拟账户怎么申请?

国内的期权模拟账户可以在券商和期权分仓平台处申请开通,期权相比于股票具有杠杆投资、风险控制等新特性。 期权模拟交易客户端能够提供期权的开平仓交易、备兑开仓/平仓、行权等交易指令,下文为大家介绍国内的期权模拟账户怎么申请&#xff…

安卓模拟键盘蓝牙电脑apk

蓝牙连接电脑就可以使用了。 下载地址:点击下载https://download.csdn.net/download/jasonhongcn/89382597

【基础算法总结】模拟算法

模拟算法 1.替换所有的问号2.提莫攻击3.Z 字形变换4.外观数列5.数青蛙 点赞👍👍收藏🌟🌟关注💖💖 你的支持是对我最大的鼓励,我们一起努力吧!😃😃 模拟算法 —> 比葫芦…

npm发布、更新、删除包

如何将自己开发的依赖包发布到npmjs上供别人使用?五个步骤搞定! 实现步骤: 创建自己的工具包项目,进行开发。注册npmjs账号。执行npm login在控制台登录,填写用户信息。执行npm publish发布包。更新及删除。 步骤一…

Leetcode - 周赛399

目录 一,3162. 优质数对的总数 I 二,3163. 压缩字符串 III 三,3164. 优质数对的总数 II 四, 3165. 不包含相邻元素的子序列的最大和 一,3162. 优质数对的总数 I 假设 x 是 nums1 数组中的值,y 是 nums2…

Docker部署SiYuan笔记-Unraid

使用unraid的docker部署SiYuan笔记,简单记录 笔记说明 Siyuan笔记是一款基于markdown语法的笔记工具,具有活跃的社区和多设备支持。大部分功能都是免费,源代码开源,支持插件安装,具有很不错的使用体验。 Docker地址&a…

【应用层】 DNS 域名协议解析

文章目录 DNS(Domain Name System)出现及演化 ⏳DNS 概括🔍DNS定义DNS 作用 DNS工作原理⚙️域名解析DNS解析的详细工作流程 DNS域名解析方式🔄静态DNS域名解析动态DNS域名解析 DNS域名解析过程的深入分析 🧐递归查询迭代查询 公共DNS服务器的…

Python 机器学习 基础 之 处理文本数据 【停用词/用tf-idf缩放数据/模型系数/多个单词的词袋/高级分词/主题建模/文档聚类】的简单说明

Python 机器学习 基础 之 处理文本数据 【停用词/用tf-idf缩放数据/模型系数/多个单词的词袋/高级分词/主题建模/文档聚类】的简单说明 目录 Python 机器学习 基础 之 处理文本数据 【停用词/用tf-idf缩放数据/模型系数/多个单词的词袋/高级分词/主题建模/文档聚类】的简单说明…

AI帮写:探索国内AI写作工具的创新与实用性

随着AI技术的快速发展,AI写作正成为创作的新风口。但是面对GPT-4这样的国际巨头,国内很多小伙伴往往望而却步,究其原因,就是它的使用门槛高,还有成本的考量。 不过,随着GPT技术的火热,国内也涌…

Keras深度学习框架实战(3):EfficientNet实现stanford dog分类

1、通过EfficientNet进行微调以实现图像分类概述 通过EfficientNet进行微调以实现图像分类,是一个使用EfficientNet作为预训练模型,并通过微调(fine-tuning)来适应特定图像分类任务的过程。一下是对相关重要术语的解释。 Effici…

【气象常用】剖面图

效果图: 主要步骤: 1. 数据准备:我用的era5的散度数据(大家替换为自己的就好啦,era5数据下载方法可以看这里【数据下载】ERA5 各高度层月平均数据下载_era5月平均数据-CSDN博客) 2. 数据处理&#xff1a…

高考试卷押运车视频监控解决方案

一、引言 高考作为我国教育领域的重要事件,其公正、公平和安全性一直备受社会关注。试卷押运作为高考的重要环节,其安全性直接关系到高考的顺利进行和考生的切身利益。因此,对高考试卷押运车实施视频监控解决方案,对于确保试卷安…

【Pr学习】01新建项目起步

【Pr学习】01新建项目起步 1、新建项目2.序列设置2.1新建序列2.2序列参数讲解2.3自定义设置 3.PR窗口认识3.1 项目窗口3.2 源窗口2.4 保存面板 4.剪辑导入4.1 素材导入4.2 视图切换4.3 时间轴4.4轨道工具4.5 节目窗口素材导入 5.基础操作5.1 取消视频音频链接5.2 单独渲染&…

在不受支持的 Mac 上安装 macOS Sonoma (OpenCore Legacy Patcher v1.5.0)

在不受支持的 Mac 上安装 macOS Sonoma (OpenCore Legacy Patcher v1.5.0) Install macOS on unsupported Macs 请访问原文链接:https://sysin.org/blog/install-macos-on-unsupported-mac/,查看最新版。原创作品,转载请保留出处。 作者主…

Hugging Face称检测到对其人工智能模型托管平台的“未经授权访问“

周五下午晚些时候,人工智能初创公司Hugging Face表示,其安全团队在本周早些时候检测到对Spaces的"未经授权访问",Spaces是Hugging Face用于创建、共享和托管人工智能模型和资源的平台。 Hugging Face 在一篇博文中说,这…

intel深度相机D455的使用

一、D455介绍 Intel RealSense D455 是RealSense D400系列的一部分,这个系列的设备以其高精度和可靠性而闻名。D455相比于之前的型号(如D415和D435),提供了更远的感知范围和更高的精度。 二、使用代码 我们先定义一下相关的函数…