当前位置: 首页 > news >正文

软件测试进阶

目录

一、自动化测试

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:产出性能测试报告

相关文章:

软件测试进阶

目录 一、自动化测试 1.概念 2.Selenium 2.1 概念 2.1.1 Selenium是什么? 2.1.2 Selenium特点 2.1.3 工作原理 2.2 SeleniumJava环境搭配 2.3 定位元素 2.3.1 CSS语法 2.3.2 XPath语法 2.4 应用 2.4.1 点击提交文本 2.4.2 模拟输入 2.4.3 清除文本 2…...

将字符串 “()“ ““ “|“ 条件组成的复杂表达式转换为ES查询语句

应用场景 "()" "&" "|" 这几个条件对于我们来说并不陌生, 其表达的逻辑非常明了, 又能通过很少的字符表达很复杂的嵌套关系, 在一些复杂的查询中会经常用到, 因此我最近也遇到了类似的问题,一开始觉得这类的工具应该挺常见的, 结果搜了半天…...

2024上半年软考 考试心得

考试的时候感觉选择题有点偏,很多概念题都不知道是什么,好像没怎么见过,什么拖库洗库,linux权限号不会,python也不确定,但也算顺利;下午题的数据库竟然没考主键外键,我的天哪&#x…...

【redis】set和zset常用命令

set 无序集合类型 sadd 和 smembers SADD:将一个或者多个元素添加到set中。注意,重复的元素无法添加到set中。 语法:SADD key member [member] 把集合中的元素,叫做member,就像hash类型中,叫做field类似. 返回值表示本次操作,添加成功了几个元素. 时间复…...

【面试题-006】java中的垃圾回算法有哪些?

Java中的垃圾回收(Garbage Collection,简称GC)是指自动内存管理的一种机制,用于回收不再使用的对象占用的内存。Java中的垃圾回收算法主要有以下几种: 标记-清除(Mark-Sweep)算法: …...

最小时间差

首先可以想到,可以计算出任意两个时间之间的差值,然后比较出最小的,不过这种蛮力方法时间复杂度是O(n^2)。而先将时间列表排序,再计算相邻两个时间的差值,就只需要计算n个差值,而排序阶段时间复杂度通常为O…...

动态SQL IF语句

IF语句学习 第一种写法(标准) 我们先来看以下标准写法: select * from .. <where> <if test""> and ....... <if test""> and ....... <where> 我们用了一个where标签 , 内嵌if语句 第二种写法: 这是第二种写法:不用where标…...

961题库 北航计算机 操作系统 附答案 选择题形式

有题目和答案&#xff0c;没有解析&#xff0c;不懂的题问大模型即可&#xff0c;无偿分享。 第1组 习题 计算机系统的组成包括&#xff08; &#xff09; A、程序和数据 B、处理器和内存 C、计算机硬件和计算机软件 D、处理器、存储器和外围设备 财务软件是一种&#xff…...

SylixOS 版本与 RealEvo-IDE 版本对应关系说明

SylixOS 版本与 RealEvo-IDE 版本对应关系说明 SylixOS 版本IDE 版本发布日期1.4.13.1.52017/01/171.5.23.5.12017/10/121.7.13.8.32018/06/221.8.33.9.52018/10/081.9.9-103.9.102020/01/021.11.63.10.22020/05/131.11.73.10.x2020/06/121.12.93.11.02020/09/111.12.11&#…...

linux命令:调试必备工具dmesg

在服务器上进行芯片调试时&#xff0c;我们会遇到各种各样的问题&#xff0c;很多问题与操作系统相关。此时就需要了解操作系统发生了哪些事件。 dmesg 是linux系统中用来打印或控制内核缓冲区内容的命令。这个环形缓冲区记录了系统启动以来发生的各种事件消息&#xff0c;包括…...

第三届大湾区算力大会丨暴雨开启数字未来新篇

5月30-31日&#xff0c;韶关市迎来主题为“算启新篇智创未来”的第三届粤港澳大湾区(广东)算力产业大会暨第二届中国算力网大会&#xff0c;活动由广东省人民政府主办&#xff0c;广东省政数局、韶关市人民政府共同承办。暴雨信息作为算力产业发展的重要构建者受邀赴会&#xf…...

SPWM载波调制方式-三电平杂记1

方法一&#xff1a; P2 O1 N0 方法二&#xff1a;双载波直接发波 方法三&#xff1a;负轴载波和调制波往上抬升1&#xff0c;得到使用同一个载波 在正半周在P和O切换&#xff0c;在下半轴式O和N切换...

常见攻击类型整理

文章目录 网络攻击web攻击XSS攻击存储型XSS反射型XSSDOM型XSS CSRF攻击SQL注入攻击文件上传漏洞业务逻辑漏洞越权访问水平越权垂直越权 密码找回验证码漏洞 信息泄露暴力破解远程命令执行&#xff08;RCE&#xff09;xxe注入反序列化文件包含本地文件包含&#xff08;LFI&#…...

R语言探索与分析-美国房价及其影响因素分析

一、选题背景 以多元线性回归统计模型为基础&#xff0c;用R语言对美国部分地区房价数据进行建模预测&#xff0c;进而探究提高多元回 归线性模型精度的方法。先对数据进行探索性预处理&#xff0c;随后设置虚拟变量并建模得出预测结果&#xff0c;再使用方差膨胀因子对 多重共…...

Android14 WMS-窗口添加流程(一)-Client端

窗口布局在onCreate方法中通过setContentView(R.layout.xxx)加载&#xff0c;但窗口的显示并不是在wm_on_create_called中, 而是在wm_on_resume_called后&#xff0c;也就是说应用onResume时此窗口是不可见的&#xff0c;真正可见是当此window窗口的mDrawState变化状态从NO_SUR…...

【人工智能】第二部分:ChatGPT的架构设计和训练过程

人不走空 &#x1f308;个人主页&#xff1a;人不走空 &#x1f496;系列专栏&#xff1a;算法专题 ⏰诗词歌赋&#xff1a;斯是陋室&#xff0c;惟吾德馨 目录 &#x1f308;个人主页&#xff1a;人不走空 &#x1f496;系列专栏&#xff1a;算法专题 ⏰诗词歌…...

Informer

I n f o r m e r Informer Informer 摘要&#xff1a; 长序列时间序列的预测 i n f o r m e r informer informer优点&#xff1a; P r o b s p a r e Probspare Probspare自关注机制&#xff0c;在时间复杂度和内存使用方面达到 O ( N l o g N ) O(NlogN) O(NlogN),在序列依…...

12岁学什么编程机构好:深入剖析与全面指导

12岁学什么编程机构好&#xff1a;深入剖析与全面指导 在数字化时代&#xff0c;编程已成为一项必备技能。对于12岁的孩子来说&#xff0c;选择一个合适的编程机构至关重要。然而&#xff0c;市场上的编程机构众多&#xff0c;如何选择成为了一个难题。本文将从四个方面、五个…...

Day60 柱状图中最大的矩形

84 柱状图中最大的矩形 题目链接&#xff1a;84. 柱状图中最大的矩形 - 力扣&#xff08;LeetCode&#xff09; 给定 n 个非负整数&#xff0c;用来表示柱状图中各个柱子的高度。每个柱子彼此相邻&#xff0c;且宽度为 1 。 求在该柱状图中&#xff0c;能够勾勒出来的矩形的…...

typescript --object对象类型

ts中的object const obj new Object()Object 这里的Object是Object类型&#xff0c;而不是JavaScript内置的Object构造函数。 这里的Object是一种类型&#xff0c;而Object()构造函数表示一个值。 Object()构造函数的ts代码 interface ObjectConstructor{readonly prototyp…...

如何使用python将多个EXCEL表进行合并

在Python中&#xff0c;你可以使用pandas库来轻松地将多个Excel表格合并。以下是一个基本的步骤指南和示例代码&#xff0c;说明如何合并多个Excel文件到一个单独的DataFrame中&#xff1a; 步骤 安装pandas和openpyxl&#xff08;如果你正在处理.xlsx文件&#xff09;。导入…...

【前端每日基础】day35——HTML5离线存储

HTML5引入了一些新的特性和API来增强Web应用的功能&#xff0c;其中之一就是离线存储。离线存储允许Web应用在没有网络连接的情况下仍能正常运行。以下是HTML5离线存储的主要技术和详细介绍&#xff1a; Web Storage (LocalStorage 和 SessionStorage) LocalStorage 概述&…...

动态规划算法:背包问题

背包问题概述 背包问题 (Knapsack problem) 是⼀种组合优化的 NP完全问题 。 问题可以描述为&#xff1a;给定⼀组物品&#xff0c;每种物品都有⾃⼰的重量和价格&#xff0c;在限定的总重量内&#xff0c;我们如何选择&#xff0c;才能使得物品的总价格最⾼。 根据物品的个…...

新版idea配置git步骤及项目导入

目录 git安装 下载 打开git Bash 配置全局用户名及邮箱 查看已经配置的用户名和邮箱 在IDEA中设置Git 问题解决 项目导入 前言-与正文无关 ​ 生活远不止眼前的苦劳与奔波&#xff0c;它还充满了无数值得我们去体验和珍惜的美好事物。在这个快节奏的世界中&#xff0…...

赶紧收藏!2024 年最常见 20道 Kafka面试题(一)

一、Kafka都有哪些特点&#xff1f; Kafka是一个分布式流处理平台&#xff0c;它被设计用于高吞吐量的数据管道和流处理。以下是Kafka的一些主要特点&#xff1a; 高吞吐量、低延迟&#xff1a;Kafka每秒可以处理数十万条消息&#xff0c;延迟可以低至几毫秒。这是通过优化数据…...

unsigned char*和const char*的一些问题

1.可以返回字符串常量&#xff0c;但是不能返回char buf[BUF_SIZE] char* get_str(){char* str "hello world";return str; }char* get_str(){char str[32] {0};strcpy(str, "hello world");return str; }//err 2.联合体不能用指针&#xff0c;也…...

前端知识1-4:性能优化进阶

性能优化进阶 Navigation Timing API navigationStart / end 表示从上一个文档卸载结束时 > 如果没有上一个文档&#xff0c;这个值和fetchStart相等 unloadEventStart / end 标识前一个网页unload的时间点 redirectStart / end 第一个http重定向发生和结束的时间 fetch…...

ios 新安装app收不到fcm推送

&#x1f3c6;本文收录于「Bug调优」专栏&#xff0c;主要记录项目实战过程中的Bug之前因后果及提供真实有效的解决方案&#xff0c;希望能够助你一臂之力&#xff0c;帮你早日登顶实现财富自由&#x1f680;&#xff1b;同时&#xff0c;欢迎大家关注&&收藏&&…...

汽美汽修店管理系统会员小程序的作用是什么

汽车后市场汽美汽修赛道同样存在着大量商家&#xff0c;连锁品牌店或个人小店等&#xff0c;门店扎堆且区域覆盖面积广&#xff0c;当然每天车来车往也有不少生意。 随着线上化程度加深和商家不断拓展市场的需要&#xff0c;传统运营模式可能难以满足现状&#xff0c;尤其是年…...

远程自动锁定平面

目录 Ubuntu 系统上 方法一&#xff1a;使用 SSH 重新连接 方法二&#xff1a;解锁当前会话 方法三&#xff1a;通过 SSH 解锁会话 方法四&#xff1a;禁用自动锁屏&#xff08;如果合适&#xff09; windows系统 方法三&#xff1a;修改组策略设置 Ubuntu 系统上 远程…...