【Jmeter、postman、python 三大主流技术如何操作数据库?】

news2025/3/17 14:03:37

1、前言

只要是做测试工作的,必然会接触到数据库,数据库在工作中的主要应用场景包括但不限于以下:

  • 功能测试中,涉及数据展示功能,需查库校验数据正确及完整性;例如商品搜索功能

  • 自动化测试或性能测试中,某些接口要跑通,需要关联到数据库操作;例如注册接口中短信验证码获取

  • 自动化测试中断言处理,除了响应结果的断言,还包括到数据库断言

  • 自动化测试或性能测试中,某些场景需批量造数据,可能需要用到数据库造数据

  • 测试中,发现bug,需定位bug,可能需要查询到数据库进行定位

当我们利用Jmeter或postman工具进行接口测试,又或者利用python去进行自动化测试,比如商品搜索功能,需查库校验搜索商品结果的正确完整性,去实现断言。这里涉及到数据库如何操作呢?

图片

2、Jmeter如何操作数据库?

第一步:通过JDBC Connection Configuration,建立数据库连接

在Jmeter线程组下右键->配置元件->选择 JDBC Connection Configuration,做如下配置

图片

**注意:**jmeter工具去操作数据库不带驱动,需要自己添加驱动jar包,下载一个,并放到jmeter的lib目录下,然后点开测试计划,添加jar包路径。如下:

图片

图片

第二步:通过JDBC Request编写sql语句操作数据库,获取数据

在Jmeter线程组下右键->取样器->选择 JDBC Request,做如下配置:

图片

点击运行,可以正常看到搜索结果:

图片

3、postman如何操作数据库?

postman本身没有数据库连接功能,需要用到node.js中的xmysql实现Rest API生成,再利用postman去对API进行请求,实现对数据库的操作。

第一步:环境准备,安装xmysql

1、node.js的安装:访问https://nodejs.org/en/download 进行下载并安装。安装成功后,在cmd命令行窗口输入node --verison,出现版本信息则表示安装成功。

图片

2、xmysql的安装:在命令行窗口输入npm install -g xmysql 即可进行安装。安装完成后,输入xmysql 看到使用说明,则说明安装成功。

图片

第二步:连接数据库

命令行窗口输入:xmysql -h 主机名 -u 用户名 -p 密码 -d 库名。如下:

图片

第三步:postman操作数据库

postman对xmysql生成的Rest API进行增删改查操作,详见官方文档:https://github.com/o1lab/xmysql?utm_source=testingpai.com#xmysql--one-command-to-generate-rest-apis-for-any-mysql-database

示例如下:

图片

postman查询数据操作如下:

图片

4、python如何操作数据库?

第1步:环境准备,安装pymysql

python中操作mysql数据库,需借助第三方库例pymysql来实现。所以需要先安装pymysql:

通过cmd命令行窗口输入pip install pymysql。安装后,通过pip show pymysql 检测是否安装成功。显示pymysql库信息则成功。

图片

第2步:python文件中,编写代码操作数据库
import pymysql   # 导包
# 第1步:连接数据库conn = pymysql.connect(    user="shopxo",  # 用户名    password="lemfix",  # 密码    host="spx.lemfix.com",  # 数据库的域名或ip    database="shopxo",  # 库名    port=3306,  # 端口    charset="utf8mb4",  # 编码)

# 第2步:创建游标cur = conn.cursor()

# 第3步:执行sql语句 - 查询# cur.execute(sql语句),返回值为执行sql影响到的行数row_count = cur.execute("select id, title, price from sxo_goods where is_shelves = 1 and title like '%连衣裙%' and is_delete_time = 0 order by access_count desc,sales_count desc;")print(row_count)
# 第4步:获取查询数据search_data = cur.fetchall()print(search_data)
# 第5,关闭数据库连接,释放资源cur.close()conn.close()

运行以上代码,得到数据库查询结果如下:

图片

5、总结

以上的操作仅仅只是数据库连接及查询操作的演示,一个完整的项目,还需结合业务场景,去对应设计脚本或编写代码。大家可在此基础上,结合自己项目情况,进行拓展。

学无止境,行以致远。

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

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

相关文章

Pytorch深度强化学习2-1:基于价值的强化学习——DQN算法

目录 0 专栏介绍1 基于价值的强化学习2 深度Q网络与Q-learning3 DQN原理分析4 DQN训练实例 0 专栏介绍 本专栏重点介绍强化学习技术的数学原理,并且采用Pytorch框架对常见的强化学习算法、案例进行实现,帮助读者理解并快速上手开发。同时,辅…

swing快速入门(二十九)播放器工具条

注释很详细,直接上代码 上一篇 新增内容 1.工具条按钮添加响应及图标 2.为控件添加滚动条(通用) 3.在工具按钮之间添加自动间隔 4.设置工具条的可否移动状态(默认可移动) package swing21_30;import javax.swing…

Spring系列学习二、Spring框架的环境配置

Spring框架的环境配置 一、Java环境配置二、 Spring框架的安装与配置三、Maven与Gradle环境的配置四、IDE环境配置(Eclipse与IntelliJ IDEA)五、结语 一、Java环境配置 所有编程旅程总是得从基础开始,如同乐高积木大作的基座,首先…

Ubuntu20.04-查看GPU的使用情况及输出详解

1. 查看GPU的使用情况 1.1 nvidia-smi # 直接在终端得到显卡的使用情况 # 不会自动刷新 nvidia-smi# 重定向到文件中 nvidia-smi > nvidia_smi_output.txt# 如果输出的内容部分是以省略号表示的,可以-q nvidia-smi -q 1.2 nvidia-smi -l # 会自动刷新&#x…

Python高级用法:enumerate(枚举)

enumerate(枚举) 在编写代码时,为了遍历列表并获取每个元素在列表中的索引,我们可以使用Python中的enumerate函数。下面是一个简单的例子,演示了如何使用enumerate函数实现相同的功能。 原始代码片段: i…

keepalived高可用 | 部署Ceph分布式存储

keepalived高可用 | 部署Ceph分布式存储 keepalived高可用1. 配置第二台haproxy代理服务器部署HAProxy 2.为两台代理服务器配置keepalived配置第一台代理服务器proxy (192.168.4.5)配置第二台代理服务器proxy (192.168.4.6)修改DNS服务器 部署ceph分布式存储准备硬件实验环境准…

10个值得收藏的机器视觉标注工具

推荐:用 NSDT编辑器快速搭建可编程3D场景 我们知道寻找良好的图像标记和注释工具对于创建准确且有用的数据集的重要性。 随着图像注释空间的增长,我们看到开源工具的可用性激增,这些工具使任何人都可以免费标记他们的图像并从强大的功能中受益…

Java代理设计模式--静态代理和动态代理

文章目录 代理设计模式概念代理模式的定义与特点代理模式的结构与实现代理模式的应用场景静态代理实例代理模式的扩展动态代理实现方式JDK动态代理与实例Cglib动态代理JDK动态代理与CGLIB对比 代理设计模式 概念 在有些情况下,一个客户不能或者不想直接访问另一个…

【中小型企业网络实战案例 二】配置网络互连互通

​【中小型企业网络实战案例 一】规划、需求和基本配置-CSDN博客 热门IT技术视频教程&#xff1a;https://xmws-it.blog.csdn.net/article/details/134398330?spm1001.2014.3001.5502 配置接入层交换机 1.以接入交换机ACC1为例&#xff0c;创建ACC1的业务VLAN 10和20。 <…

NFC物联网一次性口令认证解决方案

物联网是由无线传感器网络、射频识别(RadioFrequency Identificalion&#xff0c;RFID)网络、互联网等构成的一种复合型网络&#xff0c;具有部分终端设备体积小、存储和计算处理能力弱的特点。顾名思义&#xff0c;物联网就是“物物相连的互联网”&#xff0c;也就是说,物联网…

Visual Studio2022配置ReSharper C++ 常用设置

如需安装免费的可以在下面留言&#xff0c;看到即回复 文章目录 Visual Studio2022配置ReSharper C 常用设置配置Visual Studio2022&#xff0c;使其能够按回车进行补全配置ReSharper C 设置自动弹出配置ReSharper C 的快捷键ReSharper C 去掉注释拼写使用中文注释 如何关闭新版…

OAuth2.0 四种授权方式讲解

一、OAuth2.0 的理解 OAuth2是一个开放的授权标准&#xff0c;允许第三方应用程序以安全可控的方式访问受保护的资源&#xff0c;而无需用户将用户名和密码信息与第三方应用程序共享。OAuth2被广泛应用于现代Web和移动应用程序开发中&#xff0c;可以简化应用程序与资源服务器之…

在国内如何在速卖通上买东西(在速卖通aliexpress上付款)??

一、速卖通aliexpress上购物流程 1. 登录速卖通aliexpress网站&#xff0c;点击“注册”按钮。 2. 输入您的邮箱地址&#xff0c;然后单击“验证/联系”按钮&#xff1b; 3. 使用您的信用卡支付订单金额&#xff0c;点击获取信用卡 4. 在“我的订单管理器”中查看订单信息。 …

学习笔记14——Springboot以及SSMP项目

SpringBoot Springboot项目 IDEA2023只能创建jdk17和21的springboot项目解决 - 嘿嘿- - 博客园 (cnblogs.com)解决IntelliJ IDEA2022.03创建包时&#xff0c;包结构不自动分级显示的问题_idea建包不分级-CSDN博客IDEA调出maven项目窗口_idea maven窗口-CSDN博客 相比于spring的…

【2023下算法课设】Gray码的分治构造算法

Gray码是一个长度为2ⁿ的序列&#xff0c;序列中无相同元素&#xff0c;且每个元素都是长度为n位的二进制位串&#xff0c;相邻元素恰好只有1位不同。例如长度为2的格雷码为&#xff08;000,001,011,010,110,111,101,100&#xff09;&#xff0c;设计分治算法对任意的n值构造相…

如何使用设计模式来解决类与类之间调用过深的问题。

我们将使用责任链模式和装饰者模式的组合。 考虑一个简化的餐厅订单处理系统&#xff0c;其中包括服务员&#xff08;Waiter&#xff09;、厨师&#xff08;Chef&#xff09;和收银员&#xff08;Cashier&#xff09;。订单从服务员开始&#xff0c;然后传递给厨师&#xff0c…

python区块链简单模拟【05】

新增内容&#xff1a;构建去中心化网络 import socket #套接字&#xff0c;利用三元组【ip地址&#xff0c;协议&#xff0c;端口】可以进行网络间通信 import threading #线程 import pickle# 定义一个全局列表保存所有节点 NODE_LIST []class Node(threading.Thread…

目标检测-Two Stage-RCNN

文章目录 前言一、R-CNN的网络结构及步骤二、RCNN的创新点候选区域法特征提取-CNN网络 总结 前言 在前文&#xff1a;目标检测之序章-类别、必读论文和算法对比&#xff08;实时更新&#xff09;已经提到传统的目标检测算法的基本流程&#xff1a; 图像预处理 > 寻找候选区…

手术麻醉临床信息系统源码,客户端可以接入监护仪、麻醉机、呼吸机

一、手术麻醉临床信息管理系统介绍 1、手术麻醉临床信息管理系统是数字化手段应用于手术过程中的重要组成部分&#xff0c;用数字形式获取并存储手术相关信息&#xff0c;既便捷又高效。既然是管理系统&#xff0c;那就是一整套流程&#xff0c;管理患者手术、麻醉的申请、审批…

NVIDIA Jetson Nano 2GB 系列文章(9):调节 CSI 图像质量

NVIDIA英伟达中国 ​在本系列上一篇文章中&#xff0c;我们为大家展示了如何执行常见机器视觉应用。在本篇文章中&#xff0c;我们将带领大家调节 CSI 图像质量。 前面两篇文章在 Jetson Nano 2GB 上使用 CSI 摄像头做了几个实验&#xff0c;效果很不错&#xff0c;并且很容易…