前言:

【文章末尾给大家准备了大量的福利】

一:环境准备

1.下载jxl.jar这个jar包

2.下载好之后,放到Jmeter的安装路径下的lib目录下

3.jxl.jar的作用:完成对Excel的读写以及修改操作

如何利用jmter操作excel的思路分析:
1,Excell一般有三个最重要的元素:workbook,sheet,cell
2,想要把结果储存到指定的单元格,那就必须依照这个三个元素来定位。
3,先获取excel的文件名称
4,获取表单名
5,获取单元格的坐标
6,获取结果,写入到对应的单元格去
7,需要利用beanshell写java代码,获取对应的数据写入到Excel里面去。

二:测试数据结构准备

准备的数据如下:(1)测试用例文件命名为user.csv (2)测试数据文件命名为num.csv

注意:先新建txt文件,然后将文件扩展名改为csv,不要新建xls再改为csv,不然会出现读取不到文件的情况

1.创建测试用例文件,并导入到CSV Data Set Config,命名为test_case,并设置相关属性(注意圈起来的部分)

2.创建测试数据文件,并导入到CSV Data Set Config,命名为test_data,并写入变量名为tel,pwd

三:(1)新建线程组,创建一个登录请求的http,并传入相关的参数

(2)新建一个正则表达式提取器,获取http请求返回的结果

四:代码准备,编写好代码后,导出jar包,命名为CWResultFile.jar,将导出的jar包放入放到Jmeter的安装路目录下的lib--ext目录下,然后记得重启Jmeter,不然不生效

import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.text.SimpleDateFormat;
import java.util.Date;
import jxl.Cell;
import jxl.Workbook;
import jxl.format.Alignment;
import jxl.format.Colour;
import jxl.format.VerticalAlignment;
import jxl.read.biff.BiffException;
import jxl.write.Label;
import jxl.write.WritableCellFormat;
import jxl.write.WritableFont;
import jxl.write.WritableSheet;
import jxl.write.WritableWorkbook;
import jxl.write.WriteException;
import jxl.write.biff.RowsExceededException;/**导入jxl.jar;*后续扩充功能,sheet2增加测试报告展现;------待实现;*/
public class CWOutputFile {public static void main(String[] args) throws RowsExceededException, WriteException, BiffException, IOException{CWOutputFile t=new CWOutputFile();String File=t.cOutputFile("测试");}/** wOutputFile方法写结果文件* wOutputFile(文件路径,案例编号,测试验证点,预期结果,实际结果,错误码,状态码,响应结果)*/public void wOutputFile(String filepath, String caseNo,String testPoint, String preResult, String fresult, String errCode,String status, String respond) throws IOException,RowsExceededException, WriteException, BiffException {File output = new File(filepath);String result = "";InputStream instream = new FileInputStream(filepath);Workbook readwb = Workbook.getWorkbook(instream);WritableWorkbook wbook = Workbook.createWorkbook(output, readwb); // 根据文件创建一个操作对象WritableSheet readsheet = wbook.getSheet(0);//int rsColumns = readsheet.getColumns(); //获取Sheet表中所包含的总列数int rsRows = readsheet.getRows(); // 获取Sheet表中所包含的总行数/********************************字体样式设置 ****************************/WritableFont font = new WritableFont(WritableFont.createFont("宋体"), 10,WritableFont.NO_BOLD);// 字体样式WritableCellFormat wcf = new WritableCellFormat(font);/***********************************************************************/Cell cell1 = readsheet.getCell(0, rsRows);if (cell1.getContents().equals("")) {Label labetest1 = new Label(0, rsRows, caseNo);// 第1列--案例编号;Label labetest2 = new Label(1, rsRows, testPoint); // 第2列--验证测试点;Label labetest3 = new Label(2, rsRows, preResult); // 第3列--预期结果;Label labetest4 = new Label(3, rsRows, fresult);// 第4列--实际结果;Label labetest5 = new Label(4, rsRows, errCode);// 第5列--错误码;if (preResult == fresult) {result = "通过";wcf.setBackground(Colour.BRIGHT_GREEN); // 通过案例标注绿色} else {result = "不通过";wcf.setBackground(Colour.RED);// 不通过案例标注红色}Label labetest6 = new Label(5, rsRows, result, wcf); // 第6列--执行结果;Label labetest7 = new Label(6, rsRows, status); // 第7列--状态码Label labetest8 = new Label(7, rsRows, respond);// 第8列--响应结果readsheet.addCell(labetest1);readsheet.addCell(labetest2);readsheet.addCell(labetest3);readsheet.addCell(labetest4);readsheet.addCell(labetest5);readsheet.addCell(labetest6);readsheet.addCell(labetest7);readsheet.addCell(labetest8);}wbook.write();wbook.close();}/** cOutputFile方法创建输出文件,传入参数为交易类型,如开户等;* cOutputFile方法返回文件路径,作为wOutputFile的入参;*/public String cOutputFile(String tradeType) throws IOException, WriteException {String temp_str = "";Date dt = new Date();SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss");temp_str = sdf.format(dt); // 获取时间戳// 相对路径默认为 apache-jmeter-3.1\binString filepath = "D:\\\\"+tradeType+"_output_" + "_" + temp_str + ".xls"; // 以时间戳命名结果文件,确保唯一File output = new File(filepath);if (!output.isFile()) {output.createNewFile(); // 如果指定文件不存在,则新建该文件WritableWorkbook writeBook = Workbook.createWorkbook(output);WritableSheet Sheet = writeBook.createSheet("输出结果", 0); // createSheet(sheet名称,第几个sheet)WritableFont headfont = new WritableFont(WritableFont.createFont("宋体"), 11, WritableFont.BOLD); // 字体样式WritableCellFormat headwcf = new WritableCellFormat(headfont);headwcf.setBackground(Colour.GRAY_25); // 灰色颜色Sheet.setColumnView(0, 11); // 设置列宽度setColumnView(列号,宽度)Sheet.setColumnView(1, 30);Sheet.setColumnView(2, 35);Sheet.setColumnView(3, 35);Sheet.setColumnView(4, 18);Sheet.setColumnView(5, 11);Sheet.setColumnView(6, 11);Sheet.setColumnView(7, 50);headwcf.setAlignment(Alignment.CENTRE); // 设置文字居中对齐方式;headwcf.setVerticalAlignment(VerticalAlignment.CENTRE); // 设置垂直居中;Label labe00 = new Label(0, 0, "案例编号", headwcf); // Label(列号,行号, 内容)Label labe10 = new Label(1, 0, "验证测试点", headwcf);Label labe20 = new Label(2, 0, "预期结果", headwcf);Label labe30 = new Label(3, 0, "实际结果", headwcf);Label labe40 = new Label(4, 0, "错误码", headwcf);Label labe50 = new Label(5, 0, "执行结果", headwcf);Label labe60 = new Label(6, 0, "返回状态", headwcf);Label labe70 = new Label(7, 0, "响应结果", headwcf);Sheet.addCell(labe00);Sheet.addCell(labe10);Sheet.addCell(labe20);Sheet.addCell(labe30);Sheet.addCell(labe40);Sheet.addCell(labe50);Sheet.addCell(labe60);Sheet.addCell(labe70);writeBook.write();writeBook.close();}return filepath;}}

五:添加一个beanshell取样器调用代码,并且用到仅一次控制器(因为只需要导出一个Excel文件)

t=new CWOutputFile();
String filepath=t.cOutputFile("测试");
vars.put("filepath",filepath);//转为jMeter变量,方便后期获取。

六:再创建一个beanshell取样器调用代码,写入数据到Excel文件中

s=new CWOutputFile();
String testData="{"+"\"mobilephone\":\""+"${tel}\","+"\"pwd\":\""+"${pwd}\""+"}";
String preResult=vars.get("preResult");//用get方法可以确保获取到的是字符串,里面传递的是变量名,不需要用${变量名}这种方式咯!
String fresult=vars.get("fresult");
s.wOutputFile("${filepath}", "${caseNo}","${testPoint}",testData,preResult,fresult);

七:点击运行,在D盘找到测试结果文件即可

测试结果文件如下

JMeter-接口自动化测试读取用例,执行并结果回写相关推荐

  1. 深入理解操作系统(10)第四章:处理器体系结构(2)Y86-64的顺序实现(包括:SEQ/指令的各阶段操作:取指,解码,执行,访存,回写,更新PC/序列指令/硬件结构/时序/阶段的实现/SEQ+)

    深入理解操作系统(10)第四章:处理器体系结构(2)Y86-64的顺序实现(包括:SEQ/指令的各阶段操作:取指,解码,执行,访存,回写,更新PC/序列指令/硬件结构/时序/阶段的实现/SEQ+) 1 ...

  2. 接口自动化测试平台-用例设计的思考

    前言 自动化任务有用例执行失败了,打开分析一看,怎么登录状态token过期了,怎么查询的帐号不存在,这是往往自动化用例设计者自己坑了自己. 在设计Go接口自动化测试平台时,自己在思考:如何可以提高接口 ...

  3. 【接口测试】Jenkins+ant+jmeter接口自动化测试及邮件发送

    引言 在前一篇博文里,我介绍了关于Jmeter+ant的接口测试,详见链接Jmeter+ant.本文将在上一个文章基础上,讲解Jenkins的安装及使用(全程Windows环境下).         ...

  4. Jmeter接口自动化测试

    以下主要介绍Jmeter接口自动化需要哪些控件.接口自动化实战及总结. 今天我们要将常用组件.参数化.接口依赖.断言等知识点这些结合起来,进行综合实战. 1 接口自动化需要的控件 1.HTTP请求默认 ...

  5. ant+JMeter接口自动化测试框架实践

    作为记录,大佬勿喷,有问题请指出,谢谢. 环境搭建(windows) ant环境 下载安装ant,配置环境变量 ANT_HOME D:/ apache-ant-1.9.0 path D:/ apach ...

  6. 大厂都在做的jmeter接口自动化测试登峰造极的JMETER实现接口自动化测试

    目录 一.JMETER的环境搭建 二.JMETER的汉化 三.JMETER的接口请求 四.JMETER的参数化 五.JMETER的JSON传参 六.JMETER的断言添加 一.JMETER的环境搭建 ...

  7. 【soapUI接口自动化测试】一键式执行soapUI工程

    接口测试用例基于soapui工具 使用bat文件来调用soapui的testrunner.bat文件来达成这一需求!!! 以下为具体实现步骤:just follow my steps one by o ...

  8. python 接口测试 如何写配置文件_python接口自动化测试二十九:yaml配置文件的写和读...

    # 先安装ruamel.yaml模块 写入配置文件: import os # 先安装ruamel.yaml模块 from ruamel import yaml # 将字典写入到yaml dict = ...

  9. Jmeter笔记(Ⅱ)使用Jmeter实现轻量级的接口自动化测试

    接口测试虽然作为版本的一环,但是也是有一套完整的体系,有接口的功能测试.性能测试.安全测试:同时,由于接口的特性,接口的自动化低成本高收益的,使用一些开源工具或一些轻量级的方法,在测试用例开发的成本不 ...

最新文章

  1. sklearn解决回归问题
  2. 使用PowerShell调用MTools分析MongoDB性能并发送邮件
  3. 旷视科技 Face++ 全资收购艾瑞思机器人 正式进军机器人业务
  4. Zabbix3.X-Zabbix _Agent主动模式的监控(Active)
  5. QT4.8界面设计(MSVC2010X)+位姿哈希+ICP结果
  6. python博客访问量_史诗级干货-python爬虫之增加CSDN访问量
  7. 使用Maven插件对项目进行打包
  8. 安装DotNetCore.1.0.0-VS2015Tools.Preview2.exe 错误Error 0x81f40001 解决方法
  9. 软件项目测试报价单,某软件项目报价单
  10. 开票服务器管理系统默认密码,税控盘初始密码和口令是多少-百旺税控盘初始密码和口令-牛账网...
  11. 夜神模拟器7.12 安装 xposed
  12. mysql姓名三位随机_Mysql之生成随机数,随机字符串,随机姓名
  13. 华硕怎么安装linux系统教程,华硕Eee PC下安装Puppy Linux系统(图)
  14. linux 教程 习题,Linux练习题分享,linux练习题
  15. Zabbix监控系统搭建
  16. 怎样提取网页视频中的音频文件
  17. T1: String根据特定字符截取字符串
  18. python决策树案例_决策树案例:基于python的商品购买能力预测系统
  19. 计算机语言:机器语言、汇编语言、高级语言
  20. matlab画两电荷斥力与距离的图,电磁场大作业一基于MATLAB描绘双静电荷电场线与等势线分布...

热门文章

  1. mavne更新或新建model后项目的language leval会被重置
  2. 计算机提示无法访问手机tf卡,内存卡在电脑上无法显示
  3. 《组织能力的杨三角》——企业持续成功的秘诀(杨国安)读书摘要
  4. How to clone a brach from github
  5. 二叉树后序遍历非递归算法(详解)
  6. 《薛兆丰的经济学课》课程总结4--相互依赖
  7. 操作系统实验 P、V原语应用分析
  8. 一文给你解决linux内存源码分析- SLUB分配器概述(超详细)
  9. 如何进阶优秀数据分析师行列?方法、技术与工具,缺一不可!
  10. 现代信号处理——平稳随机信号