jmeter执行python脚本的实现示例

目录
  • 概要
  • 一、环境准备
    • 1. 测试工具
    • 2. 测试资源
  • 二、实现过程
    • 1. 在jmeter中设置参数
    • 2. 通过jmeter修改py模板
    • 3. 通过jmeter执行py脚本
    • 4. 使用获得的输出信息
  • 三、运行调试
    • 1. 运行前
    • 2. 运行后

概要

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

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

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

一、环境准备

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 = new StringBuffer();
String line = null;
File read_file = new File(read_path);
BufferedReader reader = new BufferedReader(new InputStreamReader(new FileInputStream(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 = new File(write_path);
BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(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 = new BufferedReader(new InputStreamReader(pr.getInputStream()));
String line = "";
StringBuilder response = new StringBuilder();

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脚本后生成的文件内容。

到此这篇关于jmeter执行python脚本的实现示例的文章就介绍到这了,更多相关jmeter执行python脚本内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • Jmeter并发执行Python 脚本的完整流程

    目录 1. 前言 2. Python 实现文件上传 2-1获取文件信息及切片数目 2-2切片及分段上传 2-3合并文件 2-4文件路径参数化 3. Jmeter 并发执行 4. 最后 本篇文章以文件上传为例,聊聊 Jmeter 并发执行 Python 脚本的完整流程 1. 前言 大家好,我是安果! 最近有小伙伴后台给我留言,说自己用 Django 写了一个大文件上传的 Api 接口,现在想本地检验一下接口并发的稳定性,问我有没有好的方案 本篇文章以文件上传为例,聊聊Jmeter 并发执行 Pyt

  • jmeter执行python脚本的实现示例

    目录 概要 一.环境准备 1. 测试工具 2. 测试资源 二.实现过程 1. 在jmeter中设置参数 2. 通过jmeter修改py模板 3. 通过jmeter执行py脚本 4. 使用获得的输出信息 三.运行调试 1. 运行前 2. 运行后 概要 本文主要介绍一个通过jmeter执行python脚本的测试场景.主要过程如下: 在jmeter中设置参数: 通过jmeter修改py模板文件,并创建后续需执行的py脚本: 通过jmeter执行py脚本文件,获得py文件的执行输出结果,并设置为变量:

  • Java实现的执行python脚本工具类示例【使用jython.jar】

    本文实例讲述了Java实现的执行python脚本工具类.分享给大家供大家参考,具体如下: 这里java中执行python脚本工具类,需要使用jython.jar java中执行python脚本工具类,学习的时候写着玩: import java.io.FileInputStream; import java.io.IOException; import java.io.InputStream; import java.util.ArrayList; import java.util.List; i

  • Selenium执行JavaScript脚本的方法示例

    JavaScript是运行在客户端(浏览器)和服务器端的脚本语言,允许将静态网页转换为交互式网页.可以通过 Python Selenium WebDriver 执行 JavaScript 语句,在Web页面中进行js交互.那么js能做的事,Selenium应该大部分也能做.WebDriver是模拟终端用户的交互,所以就不能点击不可见的元素,有时可见元素也不能点击.在这些情况下,我们就可以通过WebDriver 执行JavaScript来点击或者执行页面元素.本文将介绍如何使用 WebDriver

  • Jmeter调用Python脚本实现参数互相传递的实现

    接口性能测试时,接口请求参数是根据一定的规则拼接后进行MD5加密后再进行传参,因此借助于python脚本实现,则可以有效提升测试效率. 1.分析参数加密规则:NonceStr:时间戳 + 一个小于 1000 的随机数: Sign:"UserID=" + UserID+ "&" + "NonceStr=" + NonceStr + "固定的字符串": 其中UserID是上千个不同的数据已进行CSV文件参数化处理: 2.编

  • 关于命令行执行Python脚本的传参方式

    目录 命令行执行Python脚本的传参 应用场景 方式一 方式二 python-命令行传参sys.argv实际运用 argv获取参数 getopt模块 实例 实际场景运用 命令行执行Python脚本的传参 应用场景 在对ABAQUS进行二次开发时,需要将核心脚本的外部数据传递到脚本内部并执行 核心脚本在运行时,可以调用所传递的变量参数 命令行执行或者用户子程序执行 方式一 使用sys.args 简单示例 import sys def test_sys_args():     if len(sys

  • 执行python脚本并传入json数据格式参数方式

    目录 执行python脚本并传入json数据格式参数 python解析JSON数据 json模块包含以下两个函数 执行python脚本并传入json数据格式参数 最近在写一个python的数据统计分析脚本,需要根据json的数据格式参数去进行业务逻辑处理,出了一些情况拿出来一起分享讨论.一下代码纯属示例. 脚本类容很简单,接收一下参数,并使用json包进行一个加载解析. 执行脚本,传入一个json对象数组: 脚本接受到的内容: json加载解析出错: 可以看到python脚本接收到参数的时候会将

  • shell脚本中执行python脚本并接收其返回值的例子

    1.在shell脚本执行python脚本时,需要通过python脚本的返回值来判断后面程序要执行的命令 例:有两个py程序  hello.py 复制代码 代码如下: def main():     print "Hello" if __name__=='__main__':     main() world.py def main():     print "Hello" if __name__=='__main__':     main() shell 脚本 te

  • windows 10 设定计划任务自动执行 python 脚本的方法

    我用 python 写了一些脚本,有一些是爬虫脚本,比如爬取知乎特定话题的热门问题,有一些是定期的统计分析脚本,输出统计结果到文档中.之前我都是手动执行这些脚本,现在我希望如何这些脚本能自动定时执行.那么,windows 10 操作系统如何定时自动执行 python 脚本? 我的设备是 windows 10操作系统,自带的"计划任务"可以满足我的需求,具体操作步骤,整理如下. 步骤1:打开 "计算机管理" 界面 点击电脑左下角的windows图标,或者键盘的wind

  • 解决安装pycharm后不能执行python脚本的问题

    其中一种原因:pycharm没有设置系统解析器 解决方法 打开pycharm->File->Settings->Project Interpreter->设置python路径(系统python) 以上这篇解决安装pycharm后不能执行python脚本的问题就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们.

随机推荐