Postman读取csv文件完成接口自动化测试(附Jmeter做相同工作的对比)

  最早接触Postman的时候还是一个Chrome插件,后来已经发展成了完成客户端。最近研究了一下,发现Postman也可以完成很多事情。譬如读取csv文件完成接口自动化测试。不过尝试过后,感觉还是Jmeter顺手和实用一些。具体可以看两个工具完成相同工作时的步骤和表现。

 

一、接口示例:

 

二、用例示例:

 

三、Postman篇

1. 配置环境

右上角齿轮按钮->Environment options->Add->添加一个测试环境

URL 变量名、value 常量

 

2. 编写接口信息

右上角切换至刚才添加的本地环境->选择请求方式->填入接口地址->填入接口参数

{{URL}}引用本地环境中的URL变量、{{booy}} {{type}} 用于参数化,来自txt文件中的第3列和第4列。

 

3. 编写前置脚本,用于从txt文件取值

var book = "人间失格"; 是定义一个默认值 用于不读取文件时进行测试

data.book就是取txt文件的book列(也可以写成data["book"])

pm.environment.set("book", book); 就是生成一个环境变量"book",值是js变量book(指向data.book)

console.log("执行用例: " + Case); 打印日志,Case指向(data.Case)

//获取book参数
var book = "人间失格";
if(data.book){
    book = data.book
}
pm.environment.set("book", book);

//获取book参数
var type = "1";
if(data.type){
    type = data.type
}
pm.environment.set("type", type);

//获取Case用例名
var Case = "Debug";
if(data.Case){
    Case = data.Case
}
pm.environment.set("Case", Case);

//获取Assertion断言内容
var Assertion = "0";
if(data.Assertion){
    Assertion = data.Assertion
}
pm.environment.set("Assertion", Assertion);

//打印日志
console.log("执行用例: " + Case);


 

4. 编写测试脚本(断言)

//状态码
pm.test("断言: HTTP状态码 200", function () {
    pm.response.to.have.status(200);
});

//响应时间
pm.test("断言: 响应时间 200ms", function () {
    pm.expect(pm.response.responseTime).to.be.below(200);
});

//自定义断言
var Assertion = pm.environment.get("Assertion");
var responseData = JSON.parse(responseBody);
if(responseData.errcode == Assertion){
    tests["断言: errcode " + Assertion] = true;
}
else{
    tests["断言: errcode " + Assertion] = false;
}

5. 请求一次

 

6. 自动化测试

顶部工具栏->Collection->Runner

Environment 切换测试环境、Iterations 请求数量、Data 选择文件(刚才的txt文件)、选择text/csv格式

 

这时可以预览数据池

 

测试结果

 

会话详情

 

日志

顶部工具栏->View->Show Postman Console

 

四、Jmeter篇:

1. 配置环境

 

2. 编写接口信息

 

3. 取值 (Debug时启动用户参数赋值、禁用CSV。正式测试时禁用用户参数,启用CSV数据文件,循环次数开启永远)

 

4. 断言

 

5. 请求一次

 

6. 自动化测试

 

测试报告

 

五、对比结果:

1. 从编写速度来看,Postman和Jmeter都很快,我只花了几分钟。

2. 从可扩展性来看,Jmeter写的话,脚本可以直接拿来测压力。

3. 从编写感受来看,Postman每个页面连接性不强,但胜在美观。Jmeter编写时各元件查看很方便。

4. 从上手难度来看,Postman需要写少了js语句,但其实不难。Jmeter则基本可以靠图形界面选择设置。

5. 从报告易读性来看,Postman本身测试结果很清晰,本身但不能导出报告。Jmeter 查看结果树很简明,还可以生成图文报告。

但是!

使用过程中发现,Postman有一个致命伤,就是一次测试只能读取一个CSV文件,所以接口都会使用这个文件。所以要么把txt设计的很通用,要么就得单个接口单个接口Runner。但是Jmeter没有这个问题,每个线程组都可以放一个接口适用的CSV数据池。编写完十几个接口后,一键执行。并且Postman的请求次数需要手动指定,Jmeter可以配合CSV设置无数据后自动停止。所以如果真的要编写一个适合长期一键执行的脚本,还是Jmeter更合适。

 

最后附上最近写的一个脚本,基本也是这个编写思路。

<think>好的,我现在需要帮助用户找到关于如何使用JMeterCSV文件读取数据并插入到数据库的教程。用户明确要求一个教程,所以我需要确保步骤详细且符合实际操作流程。 首先,我应该回忆一下JMeter的基本操作和组件。JMeter通常用于性能测试,但也可以用来模拟用户操作,比如读取文件并写入数据库。用户提到CSV文件和数据库插入,所以可能需要用到CSV Data Set Config和JDBC连接配置。 接下来,我需要分步骤来组织回答。可能需要先讲如何准备CSV文件,然后设置测试计划,添加线程组,配置CSV数据源,接着配置数据库连接,编写插入语句,最后添加监听器查看结果。同时,要注意每个步骤中的关键配置项,比如变量名、JDBC驱动路径、连接字符串等。 需要验证每个步骤是否正确。比如,CSV文件的分隔符是否正确设置,JDBC驱动是否已正确加载,数据库连接参数是否正确,包括URL、用户名和密码。另外,还要考虑是否需要处理变量替换,比如在SQL语句中使用${变量名}的形式。 可能遇到的问题包括驱动未找到、连接失败、SQL语法错误等,所以最好在教程中提醒用户检查这些点。例如,确保JDBC驱动jar包放在JMeter的lib目录下,或者通过Test Plan的配置添加驱动路径。 另外,用户可能需要示例代码或者截图,但根据用户的要求,可能只需要文字描述。不过,可以提供一个简单的JDBC请求示例,展示如何构造插入语句,使用变量替换CSV中的字段。 最后,生成相关问题,比如参数化测试的其他方法,JDBC请求的高级配置,或者如何验证插入操作的成功与否。这些相关问题可以帮助用户进一步探索JMeter的功能。 现在需要确保回答结构清晰,步骤正确,并且符合用户的实际操作流程。同时,引用相关的参考资料,比如JMeter官方文档或者可靠的教程,但根据用户提供的引用,可能没有直接相关的,所以可能不需要添加引用标识,除非有特定的引用来源。</think>### 如何使用JMeterCSV读取数据并插入数据库? 以下是分步实现方法: #### 1. 准备CSV文件 格式示例(`data.csv`): ``` id,name,email 1,John,john@test.com 2,Lisa,lisa@test.com ``` #### 2. 创建JMeter测试计划 - **右键测试计划 > 添加 > 线程组** - 设置线程数(用户数)和循环次数 #### 3. 配置CSV数据源 - **右键线程组 > 添加 > 配置元件 > CSV Data Set Config** ``` Filename: data.csv Variable Names: id,name,email Delimiter: , (根据实际分隔符调整) ``` #### 4. 配置数据库连接 *需要数据库驱动(如mysql-connector-java.jar)* 1. **右键线程组 > 添加 > 配置元件 > JDBC Connection Configuration** 2. 关键参数: ```properties Database URL: jdbc:mysql://host:port/dbname JDBC Driver Class: com.mysql.jdbc.Driver Username: your_db_user Password: your_db_pass ``` #### 5. 添加JDBC请求 - **右键线程组 > 添加 > 采样器 > JDBC Request** - SQL语句示例: ```sql INSERT INTO users VALUES (${id}, '${name}', '${email}') ``` #### 6. 添加结果监听器 - **右键线程组 > 添加 > 监听器 > 查看结果树/汇总报告** ![JMeter结构示意图](https://jmeter.apache.org/images/screenshots/jdbc-test-plan.png)[^1] #### 常见问题排查 1. 驱动未加载:将数据库驱动JAR文件放入`jmeter/lib`目录 2. SQL错误:先在数据库客户端验证SQL语法 3. 变量未替换:确保变量名与CSV配置一致
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值