jmeter之接口功能自动化

一、接口测试简述

接口:用来连接前端,后端还有移动端的程序模块。由于不同端的工作进度不一样,需要对最开始出来的接口进行接口测试。

接口分类:POST,GET,PUT,DELETE。

POST请求的数据是放在WebForm里面的,以表单的形式提交;GET请求的数据是拼接在URL中的,以URL的形式提交数据。

不同接口类型的差异:

    1.参数提交的方式;

    2.请求数据的大小;

    3.安全性。

接口测试主要测试要点:

1、检查请求是否成功,默认请求成功时状态码是200

2、检查返回数据的正确性(即返回的数据是否与预期结果一致)与格式

3、检查接口的容错性,即传递数据的类型错误时是否可以处理

4、接口参数的边界值。例如,传递的参数足够大或为负数时,接口是否可以正常处理

5、接口的性能,接口处理数据的时间也是测试的一个方法。这直接影响用户的使用体验

6、接口的安全性

二、jmeter工具栏及常用组件介绍

1、Jmeter常用组件介绍——HTTP请求(GET)

线程组->添加->Sampler->HTTP请求

 2、Jmeter常用组件介绍——HTTP请求(POST)

线程组->添加->Sampler->HTTP请求

 3、Jmeter常用组件介绍——响应断言

HTTP请求->添加->断言->响应断言

4、Jmeter常用组件介绍——HTTP请求默认值

线程组->添加->配置元件->JDBC Connection Configuration

5、Jmeter常用组件介绍——HTTP信息头管理器

线程组->添加->配置元件->HTTP信息头管理器

6、Jmeter常用组件介绍——用户定义的变量

线程组->添加->监听器->查看结果树

7、Jmeter常用组件介绍——聚合报告

线程组->添加->监听器->聚合报告

8、Jmeter常用组件介绍——JDBC Connection Configuration

线程组->添加->配置元件->JDBC Connection Configuration

9、Jmeter常用组件介绍——JDBC Request

线程组->添加->配置元件->JDBC Request

10、Jmeter常用组件介绍——正则表达式提取器

线程组->添加->后置处理器->正则表达式提取器

三、接口测试过程

4、问题

一、如何引用变量?

1、定义变量 给需要被引用的参数值定义一个变量名,变量名是唯一的。 2、引用变量 在需要使用参数值的地方引用变量名,引用格式为: ${变量名} PS:引用变量名用到的符号均为英文字符。

二、当接口有依赖关系,即某个接口的输入参数是另一个接口的请求结果时,应该如何进行参数传递?

1、当依赖接口所需入参出现在被依赖接口的返回结果中时,

在被依赖接口的【 HTTP请求】下添加【正则表达式提取器】,使用(.+?)将所需数据从返回结果中提取出来

2、当依赖接口所需入参没有在被依赖接口的返回结果中出现时

在被依赖接口的HTTP请求后面添加【 JDBC Connection Configuration 】和【 JDBC Request】,从数据库中查询需要的数据,并在【 JDBC Request】下添加【正则表达式提取器】使用(.+?)将所需参数从查询结果中提取出来

步骤流程:请求‘注册短信验证码’接口

短信验证码验证’接口依赖‘注册短信验证码’接口

1、请求发送验证码接口

 2、添加JDBC Connection Configuration连接数据库

 3、添加JDBC Request查询‘注册短信验证码’接口产生的数据

 4、查看数据库查询结果

 5、提取验证码

 6、引用验证码名称,请求‘短信验证码验证’接口

三、为什么要连接数据库进行数据查询?

当接口之间有依赖关系,但是被依赖接口的返回结果中并没有直接返回依赖接口所需的数据时,便需要从数据库中查询出需要的测试数据。 例如: ‘短信验证码验证’需要获取‘注册短信验证码’生成的验证码,但‘注册短信验证码’的返回结果为: {“StatusCode”:200,“DataCount”:0,“Data”:1,“Error”:null},并没有直接返回验证码,因此需要连接数据库查询接口生成的验证短信,并用正则表达式提取出验证码,同时定义一个引用名称,便于‘短信验证码验证’引用。

四、当多个接口可以串成一个完整业务流程时如何处理?

前提:熟悉业务逻辑和接口所实现的功能

最好实行新增操作,然后进行一系列的操作后再删除

例如:

1.新增标签

2.新增/删除指定标签下的医生/药店/商品,同时更改标签名称

3.获取指定标签下的医生/药店/商品详情

4.删除指定标签下的医生/药店/商品

5.删除标签

以上5个接口可以按照顺序串成一个完整业务流程,在Jmeter中需要按照业务逻辑顺序来安排接口先后位置。

具体实现如下:

1.请求‘新增标签’;

2.从数据库中查询新增的标签ID,引用标签ID,请求‘新增/删除指定标签下的医生/药店/商品,同时更改标签名称’;

3.引用标签ID,请求‘获取指定标签下的医生/药店/商品详情’;

4.引用标签ID,请求‘删除指定标签下的医生/药店/商品’;

5.引用标签ID,请求‘删除标签’。

如此可以保证测试数据的一致性,且不会产生过多垃圾数据。

五、如果生成的csv测试报告文件显示乱码怎么办?

1.用txt方式打开csv文件

2.文件另存为UTF-8编码格式,替换原来的csv文件

3.打开csv文件优化测试报告

4.另存为.xlsx格式

PS:最后一步一定要另存为普通excel格式,否则数据位置会错乱。

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

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

相关文章

Linux系统下C++程序运行时的内存布局详解。【C++】

Linux系统下C程序的虚拟内存模型。 1.程序代码段存储内容生命周期初始化时机特点代码演示 2.只读初始化数据段存储内容生命周期初始化时机特点代码演示 3.读写初始化数据段存储内容生命周期初始化时机特点代码演示 4. 堆区(Heap)存储内容生命周期初始化时…

相交链表:寻找链表的公共节点

目录 一、公共节点 二、题目 三、思路 四、代码 五、代码解析 1.计算长度 2.等长处理 3.判断 六、注意点 1.leetcode的尿性 2.仔细观察样例 3.经验总结 一、公共节点 链表不会像两直线相交一样,相交之后再分开。 由于单链表只有一个next指针&#xff0…

Linux:Jenkins全自动持续集成持续部署(3)

在上一章部署好了之后,还需要点击一下才能进行部署,本章的效果是:当gitlab上的代码发生了变化后,我们不需要做任何事情不需要去点击构建按钮,Jenkins直接自动检测变化,然后自动去集成部署Linux:…

Dr4g0n

信息收集 # nmap -sn 192.168.56.0/24 -oN live.nmap Starting Nmap 7.94 ( https://nmap.org ) at 2024-03-04 08:52 CST Nmap scan report for 192.168.56.2 Host is up (0.00012s latency). MAC Address: 00:50:56:FE:B1:6F (VMware) Nmap scan report …

MATLAB下载+安装教程

下载 MATLAB: 访问 MathWorks 官方网站:MathWorks 官方网站在网站上找到 "Downloads"(下载)选项,并选择 MATLAB。登录或创建一个 MathWorks 帐号。选择您希望下载的 MATLAB 版本,并根据您的操作…

二进制源码部署mysql8.0.35

二进制部署mysql8.0.35 创建mysql用户 [rootzyq ~]#: useradd -r -s /sbin/nologin -M mysql [rootzyq ~]#: id mysql uid990(mysql) gid990(mysql) groups990(mysql)上传mysql文件 [rootzyq ~]#: ls anaconda-ks.cfg mysql-8.0.35-linux-glibc2.28-x86_64.tar.xz解压 [roo…

Uniapp manifest

manifest.json 应用配置 manifest.json 文件是应用的配置文件,用于指定应用的名称、图标、权限等。HBuilderX 创建的工程此文件在根目录,CLI 创建的工程此文件在 src 目录。 #配置项列表 属性类型默认值描述最低版本nameString应用名称appidString新建…

飞鸟写作靠谱吗 #知识分享#媒体

飞鸟写作是一个被广泛使用的论文写作工具,它不仅可以帮助用户快速完成论文写作,还可以进行查重和降重,确保论文的原创性。那么,飞鸟写作到底靠不靠谱呢?在我看来,飞鸟写作绝对是一个靠谱的工具。 首先&…

hadoop基本概念

一、概念 Hadoop 是一个开源的分布式计算和存储框架。 Hadoop 使用 Java 开发,所以可以在多种不同硬件平台的计算机上部署和使用。其核心部件包括分布式文件系统 (Hadoop DFS,HDFS) 和 MapReduce。 二、HDFS 命名节点 (NameNode) 命名节点 (NameNod…

【ai技术】(4):在树莓派上,使用qwen0.5b大模型+chatgptweb,搭建本地大模型聊天环境,速度飞快,非常不错!

1,视频地址 https://www.bilibili.com/video/BV1VK421i7CZ/ 2,下载镜像 raspberry-pi-os-64-bit https://blog.csdn.net/freewebsys/article/details/136921703 项目地址: https://www.raspberrypi.com/software/operating-systems/#rasp…

【数据挖掘】实验5:数据预处理(1)

实验5:数据预处理(1) 一:实验目的与要求 1:熟悉和掌握数据预处理,学习数据清洗、数据集成、数据变换、数据规约、R语言中主要数据预处理函数。 二:实验内容 【缺失值分析】 第一步&#xff1…

jmeter使用方法---自动化测试

HTTP信息头管理器 一个http请求会发送请求到服务器,请求里面包含:请求头、请求正文、请求体,请求头就是信息头Authorization头的主要用作http协议的认证。 Authorization的作用是当客户端访问受口令保护时,服务器端会发送401状态…

C语言UDP基础CS模型

CS模型UDP流程: 服务器: socket->bind->recvfrom->sendto->close 客户端: socket->sendto->recvfrom->close 代码说明: 1 未使用更先进的服务器模型,用基础单线程阻塞(recvfrom)作为演示 2 服务器使用while循环接收客户端消息 3 适用于同一网段的不…

使用 Flink + Faker Connector 生成测试数据压测 MySQL

博主历时三年精心创作的《大数据平台架构与原型实现:数据中台建设实战》一书现已由知名IT图书品牌电子工业出版社博文视点出版发行,点击《重磅推荐:建大数据平台太难了!给我发个工程原型吧!》了解图书详情,…

day06vue2学习

day06 路由的封装抽离 问题:所有的路由配置都堆在main.js中不太合适么?不好,会加大代码的复杂度 目标:将路由模块抽离出来。好处:差分模块,利于维护。 大致的做法就是,将路由相关的东西都提…

Python界面库Flet(1)介绍和快速使用

Python界面库Flet(1)快速上手使用 Author:Once Day Date:2024年3月19日 一位热衷于Linux学习和开发的菜鸟,试图谱写一场冒险之旅,也许终点只是一场白日梦… 漫漫长路,有人对你微笑过嘛… 全系列文章可参考专栏: Pyt…

【QT+QGIS跨平台编译】之九十:【QGIS_Crashhandler+Qt跨平台编译】(一套代码、一套框架,跨平台编译)

文章目录 一、QGIS_Crashhandler介绍二、QGIS下载三、文件分析四、pro文件五、编译实践一、QGIS_Crashhandler介绍 QGIS_Crashhandler模块是QGIS中的一个重要组成部分,它提供了QGIS程序的错误崩溃处理与跟踪。 二、QGIS下载 QGIS网址: QGIS Source Download 获取最新版本的…

RabbitMq高可用

消息队列高级 服务异步通信-高级篇1.消息可靠性1.1.生产者消息确认1.2.消息持久化1.3.消费者消息确认1.4.消费失败重试机制1.5.总结 2.死信交换机2.1.初识死信交换机2.2.TTL2.3.延迟队列 3.惰性队列3.1.消息堆积问题3.2.惰性队列 4.MQ集群4.1.集群分类4.2.普通集群4.3.镜像集群…

Linux shell脚本切换为root用户执行命令

首先安装expect。 sudo apt install expect 创建shell脚本文件,示例内容如下: #!/usr/bin/expectspawn su rootexpect {"密码:" {send "00000\r"}"Password:" {send "000000\r"}}send "./…

【物联网开源平台】tingsboard二次开发环境搭建+编译

文章目录 一,需要准备的环境二,获取tingsboard源码1.git拉取源码2.下载源码压缩包 三.新建仓库存放依赖文件四,编译五,遇到的错误 提示: 1.这篇只要准备两个环境,方法更简单! 2.基于tingsboard …