测试RestFulDemo|学习笔记

本文涉及的产品
性能测试 PTS,5000VUM额度
简介: 快速学习测试RestFulDemo

开发者学堂课程【高校精品课-厦门大学 -JavaEE 平台技术测试RestFulDemo学习笔记,与课程紧密联系,让用户快速学习知识

课程地址:https://developer.aliyun.com/learning/course/80/detail/15956


测试RestFulDemo


内容简介:

一、性能测试的类型

二、演示测试

 

一、性能测试的类型

第二个例子是关于 RestFulDemo的压力测试的例子,在这个测试中会使用 Jmeter一些元件来定义一个比较复杂的测试计划。

1. 基准测试:在性能测试的过程中当制定好测试计划以后会给系统去施加一个较低的压力。主要是看所定义的是正确的而且是有效的。

2. 负载测试:进行完基准测试后会进行负载测试,也就是从从低往高逐步的增加压力。通过这样的一个过程来找到这个系统的瓶颈是什么然后去调整系统的参数或者修改系统的代码来提升这个系统的负载能力。

3.压力测试:代码调试完毕后会对系统进行压力测试,来测试系统的容量及负载到底有多大

4.并发测试:针对某些特定的功能会利用性能测试来对其进行并发测试

 

二、演示测试

主要演示基准测试即用定义好的测试计划去判断这个测试计划在目标的服务器上测试是否符合要求。所以要测试 RestFulDemo中的API

是挑选出的一个创建商品的 API来进行测试,是一个 post的请求测试真正的增加商品的时候,是不能系统中间去增加重复商品的。因为通常来说会对它的一些关键字来进行约束。所以计划在这个设施中间去展现如何去给系统中间增加不同的数据。

这个测试是目前做的,是一个基准测试,也就是想测试一下这个定义的测试计划是否是正确的,能够用代码跑起来

1.首先定义 Thread Group:定义线程为10,1秒钟循环5次

图片12.png

2.其次依次点击 Add,Config Element定义 HTTP Header MAnager,发出去的请求需要带一个头 Content-type。Content所描述的是所要带过去的信息是什么,因为是一个 post请求,需要告诉服务器的格式形式。

改格式为 json的格式,字符集为 UTF-8,若不进行此操作,加一个头,服务器会返回错误,或返回一个400多的错误。

Name:Content-type

Value:application/json;charset=UTF-8

3.定义 http,对定义 IP、端口等进行定义

Server Name or IP:172.16.0.230

PortNumber:8080

选择 POST请求

Path:/goods

图片13.png

4.定义在 Body Data 中传入的数据

模板文件格式分别为。Json、.csv

将模板内容复制到 Body Data

内容如下:

"name":$"{name}"

"brief":"${brief}",

"unit":"${unit}",

"categoryld":11,

"brandld":12

开头的值在模板中定义的是变量,即每一个请求 name、brief、nuit 这三者单位不一样,需请求并进行判断,每一条请求都是不一样的。

5. 在 Body Data中定义了 Json的对象但有三个属性是用变量去描述的,这个变量需要去.csv文件中读取值所以需要定义一个配置原件 CSV Data Set Config读进.csv文件的内容,并将文件中的变量读取进来。

.csv文件的内容如下

name,brlef,unit

红米4X,红米4X是个好用便宜的手机,台

红米5X,红米5X是个好用便宜的手机,台

红米6X,红米6X是个好用更宜的手机,台

红米7X,红米7X是个好用便宜的手机,台

红米8X,红米8X是个好用便宜的手机,台

红米9X,红米9X是个好用便宜的手机,台

红米10X,红米10X是个好用更宜的手机,台

红米11X,红米11X是个好用便宜的手机,台

红米12X,红米12X是个好用便宜的手机,台

根据内容可以看到定义的内容,即定义了3个变量

第一行为名称,后面为若干个定义的值

所以定义 CSV Data SetConfig此时只需指定文件名及格式其余默认即可。文件第一行为不忽略的因为变量名在第一行。.csv文件中不带引号,所有线程都是共享的

总结:通过配置文件将 .csv文件读取进来然后将 .csv文件中定义的变量附上后面的值,从而在 HTTPRequest中的定义的 Body Data中的 .Json文件模板变量替换为在.csv文件中所定义的值

6. 定义 Response Assertion

反馈码为201

7. 定义了一个 JSON去看返回码和返回给Body中的值。

8. 用 JSON Path的定义去判断定义的格式是否正确定义9.ViewResults Tree去观察其结果。

10.定义 Aggregate Report 去观察汇总结果

11.保存到盘,因为做的是基准测试所以不需要用命令行去运行,

12.使用 Run Java.sh运行代码测试服务器、目标服务器

在 View Result Tree可以看到每一个线程的结果,可以知道 Request里面已经把在Body Data中所定义的模板里的变量替换为.csv 文件,每一个 Request发过去的请求都是不一样的,都有做了替换

在 AggregateReport中可以知道线程已经跑了50次。

在此测试基础上逐渐加大 ThreadGroup的线程数可进行负载测试和压力测试。

相关实践学习
通过性能测试PTS对云服务器ECS进行规格选择与性能压测
本文为您介绍如何利用性能测试PTS对云服务器ECS进行规格选择与性能压测。
相关文章
|
Web App开发 JavaScript 前端开发
NB-loT 之通过 Iwm2m 服务器测试 Coap 协议报文 | 学习笔记
快速学习 NB-loT 之通过 Iwm2m 服务器测试 Coap 协议报文
NB-loT 之通过 Iwm2m 服务器测试 Coap 协议报文 | 学习笔记
|
27天前
|
测试技术
自动化测试项目学习笔记(五):Pytest结合allure生成测试报告以及重构项目
本文介绍了如何使用Pytest和Allure生成自动化测试报告。通过安装allure-pytest和配置环境,可以生成包含用例描述、步骤、等级等详细信息的美观报告。文章还提供了代码示例和运行指南,以及重构项目时的注意事项。
124 1
自动化测试项目学习笔记(五):Pytest结合allure生成测试报告以及重构项目
|
27天前
|
测试技术 Python
自动化测试项目学习笔记(四):Pytest介绍和使用
本文是关于自动化测试框架Pytest的介绍和使用。Pytest是一个功能丰富的Python测试工具,支持参数化、多种测试类型,并拥有众多第三方插件。文章讲解了Pytest的编写规则、命令行参数、执行测试、参数化处理以及如何使用fixture实现测试用例间的调用。此外,还提供了pytest.ini配置文件示例。
19 2
|
27天前
|
测试技术 Python
自动化测试项目学习笔记(二):学习各种setup、tearDown、断言方法
本文主要介绍了自动化测试中setup、teardown、断言方法的使用,以及unittest框架中setUp、tearDown、setUpClass和tearDownClass的区别和应用。
49 0
自动化测试项目学习笔记(二):学习各种setup、tearDown、断言方法
|
6月前
|
Java 测试技术 编译器
JMM测试利器-JCStress学习笔记
JMM测试利器-JCStress学习笔记
java202303java学习笔记第四十六天-请求-postman接口测试
java202303java学习笔记第四十六天-请求-postman接口测试
77 0
|
测试技术
java202304java学习笔记第六十天-ssm-spring配置文件-完善测试环境
java202304java学习笔记第六十天-ssm-spring配置文件-完善测试环境
76 0
|
存储 Kubernetes 监控
PolarDB-X 混沌测试系统搭建赛题解析 | 学习笔记
快速学习 PolarDB-X 混沌测试系统搭建赛题解析
PolarDB-X 混沌测试系统搭建赛题解析 | 学习笔记
|
关系型数据库 OLAP API
测试 API|学习笔记
快速学习测试 API
135 0
测试 API|学习笔记
|
存储 SQL 监控
PolarDB-X 进行 TP 负载测试(三)| 学习笔记
快速学习 PolarDB-X 进行 TP 负载测试。
PolarDB-X 进行 TP 负载测试(三)| 学习笔记