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

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.mzph.cn/news/364119.shtml

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

相关文章

[转][HTML]css属性

1、字体属性(type)font-family(使用什么字体)font-style(字体的样式,是否斜体):normal/italic/obliquefont-variant(字体大小写):normal/small-capsfont-weight(字体的粗细):normal/bold/bolder/lithterfont-size(字体的大小)&…

7-OKHttp使用详解,步骤挺详细的,适合初学者使用!

OKHttp使用详解,步骤挺详细的,适合初学者使用! 一,OKHttp介绍 okhttp是一个第三方类库,用于android中请求网络。 这是一个开源项目,是安卓端最火热的轻量级框架,由移动支付Square公司贡献(该公司还贡献了Picasso和Leak…

变量与递归函数

变量与递归函数一、变量 变量分为全局变量和局部变量。 python中全局变量和局部变量的最大区别在于局部变量只能通过函数去访问,而全局变量可以直接访问。 举个例子: name linxu #全局变量 def change_name():namepython #局部变量print(name) …

使用MOXy 2.5.1快速且有点脏的JSON模式生成

因此,这些天我正在为即将推出的Oracle云服务开发新的REST API,因此我需要做的一件事情就是能够为模型中的bean自动生成JSON模式。 我正在使用MOXy从POJO生成JSON,从EclipseLink 2.5.1版本开始,它现在具有从bean模型生成JSON模式的…

手机端input[type=date]的placeholder不起作用

<div class"input clearfix"><label class"fl">起始日期</label><input class"fl text_date" type"date" name"" value"" placeholder"年/月/日" /></div><div cla…

Python中的TCP编程,实现客户端与服务器的聊天(socket)

参考大神blog:自己再写一个 https://blog.csdn.net/qq_31187881/article/details/79067644转载于:https://www.cnblogs.com/studybrother/p/10306903.html

利用ASP.NET向服务器上传文件[转]

文件上传技术是一个很实用的技术&#xff0c;有着很广泛的应用&#xff0c;在ASP.NET自身的前一个版本ASP里实现这个功能&#xff0c;就必须使用第三方的组件或者自己开发组件了&#xff0c;现在&#xff0c;用ASP.NET实现起来就简单得多了&#xff0c;我们不需要使用任何组件就…

JavaSE:如何设置/获取您自己的文件和目录属性

在上一篇文章“确定特定文件系统支持的视图”中 &#xff0c;了解如何询问文件系统存储&#xff0c;并了解特定文件属性视图的可支持性。 简而言之&#xff0c;我们将探索最高级和重要的文件属性视图之一&#xff0c;即用户定义的文件属性视图 。 特别是&#xff0c;在系统之…

java中HashMap详解

HashMap 和 HashSet 是 Java Collection Framework 的两个重要成员&#xff0c;其中 HashMap 是 Map 接口的常用实现类&#xff0c;HashSet 是 Set 接口的常用实现类。虽然 HashMap 和 HashSet 实现的接口规范不同&#xff0c;但它们底层的 Hash 存储机制完全一样&#xff0c;甚…

java代码编写的文本特征提取_Test1 java语言写的特征提取源代码,有搞文字识别的可以下载一看,简单易学 Develop 274万源代码下载- www.pudn.com...

文件名称: Test1下载 收藏√ [5 4 3 2 1 ]开发工具: Java文件大小: 35 KB上传时间: 2015-03-02下载次数: 46提 供 者: 常杰详细说明&#xff1a;java语言写的特征提取源代码&#xff0c;有搞文字识别的可以下载一看&#xff0c;简单易学-Feature extraction of the Java …

Iframe父页面与子页面之间的相互调用

父页面&#xff1a; <!DOCTYPE html> <html> <head><title>parents</title><meta charset"UTF-8"> </head> <body> <div id"default">div内容</div> <iframe src"child.html" i…

c# HashTable (哈希表)

HashTable 哈希表 也是System.Collections集合下的数据结构类 它储存的也是Object类型的对象 但是它在内存中是散列排布的 因为这个特性&#xff0c;非常适合存储大量的数据 在HashTable中一个键只能对应一个值&#xff0c;一个值可以对应多个键&#xff08;多对一&#xff09;…

Winform DataGridView数据绑定问题

DataGridView 绑定的数据源如果是DataTable、DataSet &#xff0c;在绑定后添加删除DataTable中的数据&#xff0c; DataGridView控件中的数据会自动改变&#xff0c;然而绑定的对象若是List<>之类的&#xff0c;修改List<>集合中的数据后&#xff0c;DataGridView…

盒模型应用

盒模型应用 改变宽高范围 默认情况下&#xff0c;width 和 height 设置的是内容盒宽高。 页面重构师&#xff1a;将psd文件&#xff08;设计稿&#xff09;制作为静态页面 衡量设计稿尺寸的时候&#xff0c;往往使用的是边框盒&#xff0c;但设置width和height&#xff0c;则设…

Spring集成–配置Web服务客户端超时

介绍 在Spring Integration的支持下&#xff0c;您的应用程序可以使用出站Web服务网关来调用Web服务。 调用由该网关处理&#xff0c;因此您只需要担心构建请求消息和处理响应。 但是&#xff0c;使用这种方法并不明显&#xff0c;如何配置其他选项&#xff0c;例如设置超时或操…

Number()、parseInt()、parseFloat()的区别

Number()&#xff1a; Number()的强制类型转换与parseInt()和parseFloat()方法的处理方式相似&#xff0c;只是它转换的是整个值&#xff0c;而不是部分值&#xff0c;如果有无效字符&#xff0c;该方法将返回NaN。 例如如果要把字符串 "12.34 "转换成整数&#xf…

将一幅图像取平均值缩小N倍实现方法

/// <summary>/// 将图像缩小N倍/// </summary>/// <param name"source">原图数据</param>/// <param name"height">原图高度</param>/// <param name"width">原图宽度</param>/// <param n…

将txt文件和excel文件导入SQL2000数据库

在做一些web数据库管理系统的时候经常要实现将帐户批量注册的功能&#xff0c;今天就来讲讲如何在C#-web项目中将txt文件和excel文件导入SQL2000数据库。1.数据库准备在SQL2000数据库的实例数据库pubs中建立一个数据表txtInsert&#xff0c;字段很简单&#xff1a;id&#xff0…

Linux ifconfig 配置网络接口

Linux ifconfig 可以用来配置网络接口的IP地址、掩码、网关、物理地址等&#xff1b;值得一说的是用Linux ifconfig 为网卡指定IP地址&#xff0c;这只是用来调试网络用的&#xff0c;并不会更改系统关于网卡的配置文件。 如果您想把网络接口的IP地址固定下来&#xff0c;目前有…

Java 8 Friday:Java 8将彻底改变数据库访问

在Data Geekery &#xff0c;我们喜欢Java。 而且&#xff0c;由于我们真的很喜欢jOOQ的流畅的API和查询DSL &#xff0c;我们对Java 8将为我们的生态系统带来什么感到非常兴奋。 对于Java 8系列 &#xff0c;我们很荣幸主持Iu Ming-Yee Iu博士发表的非常相关的嘉宾帖子。 Iu …