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.rhkb.cn/news/283535.html

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

相关文章

day11【网络编程】-综合案例

day11【网络编程】 第三章 综合案例 3.1 文件上传案例 文件上传分析图解 【客户端】输入流,从硬盘读取文件数据到程序中。【客户端】输出流,写出文件数据到服务端。【服务端】输入流,读取文件数据到服务端程序。【服务端】输出流&#xf…

力扣236 二叉树的最近公共祖先 Java版本

文章目录 题目描述代码 题目描述 给定一个二叉树, 找到该树中两个指定节点的最近公共祖先。 百度百科中最近公共祖先的定义为:“对于有根树 T 的两个节点 p、q,最近公共祖先表示为一个节点 x,满足 x 是 p、q 的祖先且 x 的深度尽可能大&…

院子摄像头的监控

院子摄像头的监控和禁止区域入侵检测相比,多了2个功能:1)如果检测到有人入侵,则把截图保存起来,2)如果检测到有人入侵,则向数据库插入一条事件数据。 打开checkingfence.py,添加如下…

算法公式汇总

文章目录 三角函数定义式诱导公式平方关系两角和与差的三角函数积化和差公式和差化积公式倍角公式半角公式万能公式其他公式反三角函数恒等式 三角函数定义式 三角函数 定义式 余切: c o t A 1 t a n A \text { 余切:} \ cotA \frac{1}{tanA} 余切&a…

AI Agent目前应用落地有哪些局限性?

谈到AI Agent目前应用落地有哪些局限性,还是要从概念、应用入手。 谈 到 AI Agent, 很多人都认为它是LLM的产物,了解 AI Agent 的人应该知道,Agent 概念并不是当今的产物,而是伴随人工智能而出现的智能实体概念不断进…

Qt 利用共享内存实现一次只能启动一个程序(单实例运行)

Qt 利用共享内存实现一次只能启动一个程序 文章目录 Qt 利用共享内存实现一次只能启动一个程序摘要利用共享内存实现一次只能启动一个程序示例代码 关键字: Qt、 unique、 单一、 QSharedMemory、 共享内存 摘要 今天接着在公司搞我的屎山代码,按照…

智能合约 之 部署ERC-20

Remix介绍 Remix是一个由以太坊社区开发的在线集成开发环境(IDE),旨在帮助开发者编写、测试和部署以太坊智能合约。它提供了一个简单易用的界面,使得开发者可以在浏览器中直接进行智能合约的开发,而无需安装任何额外的…

鸿蒙Harmony应用开发—ArkTS(@Prop装饰器:父子单向同步)

Prop装饰的变量可以和父组件建立单向的同步关系。Prop装饰的变量是可变的,但是变化不会同步回其父组件。 说明: 从API version 9开始,该装饰器支持在ArkTS卡片中使用。 概述 Prop装饰的变量和父组件建立单向的同步关系: Prop变量…

JSONP 实现跨域请求案例

后端使用 express 搭建,案例代码如下: const express require(express)const app express() const PORT 3000app.get(/data, (req, res) > {const jsonData {name: Alan,age: 666,city: GD}const callback req.query.callback // 获取前端中的回…

MNN 执行推理(九)

系列文章目录 MNN createFromBuffer(一) MNN createRuntime(二) MNN createSession 之 Schedule(三) MNN createSession 之创建流水线后端(四) MNN Session 之维度计算(五…

ROS2从入门到精通0-3:VSCode 搭建 ROS2 工程环境

目录 0 专栏介绍1 Ubuntu下安装VSCode1.1 基本安装1.2 将VSCode添加到侧边栏 2 VSCode集成相关插件3 VSCode运行ROS2环境步骤3.1 安装编译依赖项3.2 创建工作空间和源码空间3.3 启动VSCode与配置 4 测试工程环境4.1 C版本4.2 Python版本 0 专栏介绍 本专栏旨在通过对ROS2的系统…

【每日一问】IOS手机上Charles证书过期怎么办?

1、如何查看证书是否过期? 设置>通用>VPN与设备管理 2、在Charles中重置证书 步骤1:重置证书 Help>SSL Proxying>Reset Charles Root Certificate… 步骤2:在浏览器中,下载证书 首先,手机连上代理,然…

JavaScript 权威指南第七版(GPT 重译)(二)

第四章:表达式和运算符 本章记录了 JavaScript 表达式以及构建许多这些表达式的运算符。表达式 是 JavaScript 的短语,可以 评估 以产生一个值。在程序中直接嵌入的常量是一种非常简单的表达式。变量名也是一个简单表达式,它评估为分配给该变…

阿里云2核4G云服务器ECS和轻量应用服务器价格表

阿里云2核4G服务器租用优惠价格,轻量2核4G服务器165元一年、u1服务器2核4G5M带宽199元一年、云服务器e实例30元3个月,活动链接 aliyunfuwuqi.com/go/aliyun 活动链接如下图: 阿里云2核4G服务器优惠价格 轻量应用服务器2核2G4M带宽、60GB高效…

面试算法-82-不同路径

题目 一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为 “Start” )。 机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为 “Finish” )。 问总共有多少条不同的路径? …

律师如何看待项目管理中的技术风险

大家好,我是不会魔法的兔子,是一枚北京的执业律师,创建[项目管理者的法小院儿],持续从法律的角度分享项目管理中的风险问题及预防,让项目管理者能够提早发现与解决项目执行过程中的风险,同时欢迎大家一起交…

【C语言】数据在内存中的存储(包含大小端字节序问题)~

一、前言 我们在刚开始学习C语言的时候,就接触到了很多数据的不同类型。我们也知道,数据是存储在一块内存空间的,且我们只知道数据的类型决定着,该数据在内存中所占内存空间的大小,且超过一个字节的数据在内存中存储的…

手撕算法-接雨水

描述 分析 i位置能积累的雨水量,等于其左右两边最大高度的最小值。为了能获取i位置左右两边的最大高度。使用动态规划。两个dp数组: leftMaxrightMax 其中 leftMax[i] 代表i位置左边的最大高度rightMax[i] 代表i位置右边的最大高度 初始状态&#x…

Nacos源码流程图

1.Nacos1.x版本服务注册与发现源码 流程图地址:https://www.processon.com/view/link/634695eb260d7157a7bc6adb 2.Nacos2.x版本服务注册与发现源码 流程图地址:https://www.processon.com/view/link/634695fb260d7157a7bc6ae0 3.Nacos2.x版本GRPC…

Visual Studio 2013 - 高亮设置括号匹配 (方括号)

Visual Studio 2013 - 高亮设置括号匹配 [方括号] 1. 高亮设置 括号匹配 (方括号)References 1. 高亮设置 括号匹配 (方括号) 工具 -> 选项… -> 环境 -> 字体和颜色 References [1] Yongqiang Cheng, https://yongqiang.blog.csdn.net/