首页 > 其他分享 >软件测试进阶

软件测试进阶

时间:2024-06-01 20:34:17浏览次数:29  
标签:进阶 1.3 性能 3.4 测试用例 测试 软件测试 2.4

目录

一、自动化测试

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.3,性能,3.4,测试用例,测试,软件测试,2.4
From: https://blog.csdn.net/m0_64308748/article/details/139378394

相关文章

  • Ansible05-Ansible进阶(流程控制、Roles角色、加密优化调优等)
    目录写在前面7Ansible进阶7.1流程控制7.1.1handlers触发器与notify7.1.1.1未使用handlers7.1.1.2使用handlers7.1.2when判断7.1.2.1when的语法7.1.2.2when判断主机名选择模块输出7.1.2.3when结合register变量7.1.3loop/with_items循环7.1.3.1with_items案......
  • LeetCode 第14题:最长公共前缀题目解析(进阶版)
    本文我们来探索LeetCode第14题——最长公共前缀题目解析(进阶版)。文章目录引言题目介绍解题思路思路1:水平扫描法思路2:垂直扫描法思路3:分治法思路4:二分查找法思路5:字典树(Trie)水平扫描法详细解析步骤1:初始化前缀步骤2:逐个比较示例讲解Java代码实现图......
  • 【C++进阶】深入STL之string:掌握高效字符串处理的关键
    ......
  • Scanner的进阶使用、顺序结构和选择结构
    Java流程控制02:Scanner的进阶使用一道练习题packagecom.xiwen.scanner;importjavafx.beans.binding.DoubleExpression;importjava.util.Scanner;publicclassDemo05{publicstaticvoidmain(String[]args){//我们可以输入多个数字,并且要求其......
  • Windows server 2022从基础到进阶的 DNS 管理内容,适合初学者快速入门并建立起对 DNS
    关于WindowsServer2022DNS管理器初级应用的大纲:1. 介绍DNS服务1.1什么是DNS?1.2DNS的作用和重要性1.3DNS解析过程概述2. 部署DNS服务器2.1安装DNS服务器角色2.2配置DNS服务器基本设置2.3DNS服务器的启动和停止3. 管理DNS区域3.1什么......
  • 软件测试人员必知H5/小程序测试点
    01H5相关测试H5优势:1.H5可以跨平台,开发成本相对较低;2.H5可随时上线就更新版本,适合快速迭代;3.H5可以轻量的触达用户,提供更快捷的服务;4.在微信入口或者浏览器上,用户只需点开链接就可以获取我们所提供的服务 H5劣势:1.H5->的转化强依赖于浏览器;2.H5目前基本无法将数据存储......
  • 2024年网络安全学习指南!详尽路线图,从零基础到黑客高手的进阶之路!
    零基础小白,到就业!入门到入土的网安/黑客学习路线!建议的学习顺序:一、网络安全学习普法(心里有个数,要进去坐几年!)1、了解并介绍《网络安全法》2、《全国人大常委会关于维护互联网安全的决定》3、《中华人民共和国计算机信息系统安全保护条例(2011年修正)》4、《中华人民共......
  • Linux C进阶 —— 与C++互相调用
      本文介绍C、C++函数互相引用的方法,以及各类目标文件(含.o目标文件、.a静态库、.so动态库)在互调使用中的详细编译链接方法。本文使用arm的交叉编译工具链作为编译和链接工具。1.C调用C++方法(asio为c++库)示例源码树:$tree..├──include│├──asio││├──......
  • 【软件测试】软件测试概念 | 测试用例 | BUG | 开发模型 | 测试模型 | 生命周期
    文章目录一、什么是软件测试1.什么是软件测试2.软件测试和调试的区别测试人员需要的素养二、软件测试概念1.需求1.需求的定义2.测试人员眼中的需求2.测试用例1.测试用例概念3.BUG软件错误4、开发模型和测试模型1.软件的生命周期2.开发模型1.瀑布模型2.螺旋模型3.......
  • Java面试进阶指南:高级问题与解答精粹(一)
    Java面试问题及答案1.什么是Java内存模型(JMM)?它的作用是什么?答案:Java内存模型(JMM)是一个抽象的概念,它定义了Java程序中各种变量(线程共享变量)的访问规则,以及在并发环境下如何保证这些变量的可见性、原子性和有序性。JMM的作用是确保在并发编程中,不同线程之间对共享变量的操......