0


jmeter-执行python脚本

目录


概要

本文主要介绍一个通过jmeter执行python脚本的测试场景。主要过程如下:

  1. 在jmeter中设置参数;
  2. 通过jmeter修改py模板文件,并创建后续需执行的py脚本;
  3. 通过jmeter执行py脚本文件,获得py文件的执行输出结果,并设置为变量;
  4. 使用变量进行后续测试。

提示:以下为本篇文章正文内容,案例仅供参考。

一、环境准备

1. 测试工具

jmeter、python,与版本无关,任意版本均可。

2. 测试资源

py模板文件:
1)自定义需要在py模板文件中修改的参数,比如:我们想在jmeter中修改py脚本中某些变量的初始值,我们可以在采用特殊标记

[变量名]

的方式标记其为可替换变量;
2)使用print()方法打印输出目标参数。也可以采用其他方法,比如将多个变量值写入到csv文件中,后续可以使用csv文件进行参数化。
图-变量设置:[times]、[modelName]、[modelType]
图-输出设置:print(filepath)
在这里插入图片描述

二、实现过程

1. 在jmeter中设置参数

如图,可以选择添加“前置处理器>>用户参数”,用于设置相关变量的初始值;
在这里插入图片描述

2. 通过jmeter修改py模板

添加“取样器>>BeanShell取样器”,编写读取文件、写入文件代码。主要思路:读取模板文件内容,替换目标字符后,写入到新文件中;

// 模板文件位置String read_path = vars.get("dir")+File.separator +"files\\mkxml\\template_demo.py";// 输出文件位置String write_path = vars.get("dir")+File.separator +"files\\mkxml\\demo.py";// 读取模板文件内容StringBuffer res =newStringBuffer();String line =null;File read_file =newFile(read_path);BufferedReader reader =newBufferedReader(newInputStreamReader(newFileInputStream(read_file),"UTF-8"));while((line = reader.readLine())!=null){
    res.append(line +"\n");}
reader.close();// 处理模板内容,替换相关参数String content = res.toString();
content = content.replace("[times]", vars.get("times"));
content = content.replace("[modelName]", vars.get("modelName"));
content = content.replace("[modelType]", vars.get("modelType"));// 写入内容到输出文件位置File write_file =newFile(write_path);BufferedWriter writer =newBufferedWriter(newOutputStreamWriter(newFileOutputStream(write_file),"UTF-8"));
writer.write(content);
writer.flush();
writer.close();

在这里插入图片描述

3. 通过jmeter执行py脚本

添加“取样器>>BeanShell取样器”,通过cmd命令执行py脚本,并获得窗口输出信息;

// 以cmd命令行方式调用py脚本,&&为多组命令连接符String cmd ="cmd /c cd /d "+ vars.get("dir")+File.separator +"files\\mkxml && python demo.py";Runtime rt =Runtime.getRuntime();Process pr = rt.exec(cmd);

pr.waitFor();BufferedReader br =newBufferedReader(newInputStreamReader(pr.getInputStream()));String line ="";StringBuilder response =newStringBuilder();while((line = br.readLine())!=null){
    response.append(line);}

br.close();// 设置成可在jmeter中使用的变量,filepath为目标XML文件所在位置
vars.put("filepath", response.toString());

在这里插入图片描述

4. 使用获得的输出信息

后续需要使用输出变量时,可以通过${变量名}的形式进行参数化。
在这里插入图片描述


三、运行调试

添加“后置处理器>>调试后置处理程序”及“监听器>>察看结果树”,启动脚本运行。

1. 运行前

模板文件;
在这里插入图片描述

2. 运行后

1)新建的py文件,xml文件;
在这里插入图片描述
2)察看结果树的调试结果;
在这里插入图片描述
3)执行py脚本后生成的文件内容。
在这里插入图片描述

👏完成。


本文转载自: https://blog.csdn.net/qq_28913223/article/details/125019029
版权归原作者 咲之 所有, 如有侵权,请联系我们删除。

“jmeter-执行python脚本”的评论:

还没有评论