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

news2025/1/16 5:01:08

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/1331448.html

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

相关文章

Leetcode—剑指Offer LCR 025.两数相加II【中等】

2023每日刷题(六十七) Leetcode—LCR 025.两数相加II 实现代码 /*** Definition for singly-linked list.* struct ListNode {* int val;* struct ListNode *next;* };*/struct ListNode* addTwoNumbers(struct ListNode* l1, struct ListNode…

【Linux笔记】文件和目录操作

🍎个人博客:个人主页 🏆个人专栏:Linux学习 ⛳️ 功不唐捐,玉汝于成 目录 前言 命令 ls (List): pwd (Print Working Directory): cp (Copy): mv (Move): rm (Remove): 结语 我的其他博客 前言 学习Linux命令…

2024 Jmeter 常见面试题

​ 📢专注于分享软件测试干货内容,欢迎点赞 👍 收藏 ⭐留言 📝 如有错误敬请指正!📢交流讨论:欢迎加入我们一起学习!📢资源分享:耗时200小时精选的「软件测试…

论文阅读——RS DINO

RS DINO: A Novel Panoptic Segmentation Algorithm for High Resolution Remote Sensing Images 基于MASKDINO模型,加了两个模块: BAM:Batch Attention Module 遥感图像切分的时候把一个建筑物整体比如飞机场切分到不同图片中,…

Unity Webgl开发日记

一、Unity设置 二、打开、创建、启动IIS服务 (1)首先需要在电脑上打开IIS服务: (2)接下来需要创建一个本地服务器: 三、打包运行报错:Unable to parse Build/Test.framework.js.unityweb!The f…

C# 基于MQTT创建客户端的可靠数据传输

C# 基于MQTT创建客户端的可靠数据传输 引言MQTT简介C# MQTT库引用代码和描述1、 代码2、 描述 引言 MQTT是tcpip的应用层协议,这里我们简单介绍一下MQTT的基本概念,并用C# 描述客户端的订阅和发布。 MQTT简介 MQTT(Message Queuing Telemetry Transpor…

面试题 01.01. 判定字符是否唯一(优质解法)

链接:面试题 01.01. 判定字符是否唯一 代码: class Solution {public boolean isUnique(String astr) {//s[i]仅包含小写字母,数据范围小于 32 位,我们可以使用 int 变量的比特位来代替数组// 每个小写字符对应 bitMap 中的一个比…

Chatgpt如何共享可以防止封号!

ChatGPT 是一个基于 GPT-3.5/GPT-4 模型的对话系统,它主要用于处理自然语言对话。通过训练模型来模拟人类的语言行为,ChatGPT 可以通过文本交流与用户互动。每个新版本的 GPT 通常都会在模型规模、性能和其他方面有一些改进。在目前免费版GPT-3.5 中&…

【AI】Langchain-Chatchat搭建本地知识库-未完,先记录踩的坑

事先说一下,我本地的显卡4070只有12G显存,无法运行本地知识库,我把自己折腾的过程和遇到的坑先记录一下吧,后续如果有算力的话就再跑一遍试试。 Langchain-Chatchat曾用名Langchain-ChatGLM,是智谱AI的本地知识库项目&…

Qt前端技术:5.QSS

这个是表示QFrame中的pushButton中的子类和它子类的子类都将背景变为red 写成大于的时候表示只有直接的子类对象才会变 这个图中的QGroupBox和QPushButton都是QFrame的直接的子类 这个中的QGroupBox是QFrame的直接的子类但是QPushButton 是QGroupBox的子类,QPushB…

如何要做好年终绩效

年终绩效,每年12月份, 都是“绩效”这个词比较热门的阶段, 各个企业各个部门避不开的话题。 那如何能做好呢,一起来看看关于 要做好年终绩效考核、绩效面谈和绩效环评的建议吧! 明确目标和指标:在考核开…

Tomcat远程调试

windows环境 写一个 startup-debug.bat,指定tomcat的根目录,端口自己定义 rem *******设置Tomcat目录*******-- set CATALINE_HOMED:\asd\A8-2\tomcat d: rem 8787为可用端口,为远程调试监听端口-- cd %CATALINE_HOME%/bin set JPDA_ADDRESS8787 set J…

JavaScript系列-函数调用之apply、call、bind

文章目录 适用场景apply定义语法具体的例子 call定义语法例子 bind定义例子语法多级绑定 小结更多内容 适用场景 apply、call、bind 三者都是 Function 原型上的方法,也就是说,基本所有函数都可以通过 函数名.apply|call|bind 调用 apply、call、bind …

centos7服务器安装 mysql

centos7服务器安装 mysql 一、下载 官网:https://dev.mysql.com/downloads/mysql/ 二、安装 1.查看有没有需要卸载的SQL包,一般系统的mariadb是自带的,需要卸载 rpm -qa | grep mysql rpm -qa | grep mariadb例如:安装过MySQL…

内存函数的学习

额外知识点 第一个 假设c为int类型,(char)c之后,之后如果还用变量c的话,c依然为int类型。()强制转换操作符并不会永久改变原本的变量类型。 第二个 \0在打印时不会显示出来 第三个 void …

零成本搭建一款博客网站(基于Vercel+Hexo完美实现)【保姆级教程】

文章目录 🐸基于VercelHexo零成本搭建博客网站🐻实现思路 🐮Hexo的配置与安装🐒Hexo的美化与使用🐫Github的推送与部署🐼Vercel部署与网站上线🐛总结 🐸基于VercelHexo零成本搭建博客…

Vue 实现响应式布局

实现响应式布局是工作中必不可少 客户需要 若是使用vue element ui 的方式实现 浏览器宽度为760的情况 浏览器宽度为360的情况 手机上的显示的情况 一、对于屏幕尺寸的定义 element UI参照Bootstrap的解决方案提供了五种屏幕大小尺寸:xs、sm、md、lg 和 xl。并对…

帮助谷歌从40人裂变为60000人的OKR是啥?

OKR(Objectives and Key Results)是一种目标管理方法,旨在帮助组织和个人明确目标并衡量成功。在谷歌的发展过程中,OKR扮演了至关重要的角色,帮助公司从40人规模快速成长为60000人的科技巨头。 OKR适用于各种类型的企…

Spring中你应该要知道的initMethod

文章目录 功能源码 功能 之前的文章中由解析过PostConstruct/PreDestroy,他们也是initMethod的一种形式,注解方式是后来才加入的,在源码中他们的命名都是一样的名字,都叫initMethod,不过他们却是有着很大的差别&#…

MySQL数据库基础和基本的增删改查操作

目录 前瞻 数据库的基本概念 数据库管理系统(DBMS) 数据库系统(DBS) 数据库类型和常用数据库 关系型数据库 SQL 非关系型数据库 NoSQL SQL语句 简介 SQL语句分类 常用的数据类型 MySQL的六大约束特性 SQL语句的使用 创建及删除数据库和表 …