ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

Jmeter 执行Python代码(十二)

2020-07-16 19:02:42  阅读:534  来源: 互联网

标签:Java Python JSR223 十二 JSR Sampler Jmeter


   Jmeter 中BeanShell 中支持JAVA语言,可以使用Java来辅助我们实现一些逻辑,之前也介绍过BeanShell 导入Java的三种模式,如果我们不会写Java怎么办(虽然我们遇见的一些问题可以通过百度查询到结果),但是我们是否可以转换下思路来解决这样的问题,比如使用比较熟悉的语言例如Python(目前对于测试人员来说Python属于普及的语言)来代替实现一些代码逻辑。介绍Jmeter 执行Python代码,首先我们需要来先介绍下JSR,因为这个过程的实现与他密切相关。

  一、JSR 简介

JSR是Java Specification Requests的缩写,意思是Java 规范提案。是指向JCP(Java Community Process)提出新增一个标准化技术规范的正式请求。任何人都可以提交JSR,以向Java平台增添新的API和服务。JSR已成为Java界的一个重要标准。

我们了解了什么是JSR以后我们下面需要在Jmeter中使用JSR223标准来执行我们自己的Python代码

二、Jmeter JSR223 Sampler

  1、Jmeter JSR223 支持的语言  

  Jmeter 基于JSR223标准 支持使用多种编程语言编写脚本程序,默认使用Groovy,默认是不支持Python语言,我们需要通过Jpython来扩展Jmeter对Python语言的支持

    

     2、Jmeter 扩展Python语言支持

1、下载Jython 

  我们需要选择Jython Standalone来下载,目前里面提供了多种版本,我们只想选择最新版本下载;

  步骤1.

 

       

      步骤2.

 

 步骤3  

2、把下载的jython-standalone-2.7.2.jar 放到 jmeter的lib/ext文件夹。重启jmeter,此时就可以看到支持Python语言(如果不重新启动默认不会生效)

 

   三、Jmeter 配置JSR223 Sampler

    1、添加JSR223 Sampler

     

 

   2、选择实现逻辑的语言

 

     3、通过Python实现身份证号码的md5加密(Script区域可以实现任意代码逻辑)

import hashlib
# 定义密码
password = "admin"
# 对密码进行md5加密
m = hashlib.md5()
m.update(password .encode(encoding="utf-8"))
password = m.hexdigest()
# 存储value到变量key
vars.put("password",password)

   将代码的逻辑拷贝到Script区域

 

    4、实现的效果,我们需要添加一个新的请求来获取python代码生成的md5加密的结果,我们通过打印日志的方式把结果输出

    

     我们在JSR223 Sampler中的代码实现了生成的逻辑,那么重点我们还需要去使用这个结果,要不然我们不会费这么大的力气来搞这个事情

# Jmeter 变量的引用
${变量名}

    其实无论是java还是python或者其他的语言,主要是为我们来服务,有时候配置不一定能满足需求,所以需要通过语言来扩展一些信息输入和输出,这里使用Python主要是来实现一些复杂的内容的输入动作。

    5、上述案例导入的是Python的自带的包,导入第三方包的时候,需要设置下解析器会搜索的前目录

import sys
sys.path.append('D:\Program Files\Python\Python27\Lib')
sys.path.append('D:\Program Files\Python\Python27\Lib\site-packages')
from faker import Faker

  如果没有设置导入时会报错“o.a.j.p.j.s.JSR223Sampler: Problem in JSR223 script JSR223 Sampler, message: javax.script.ScriptException: ImportError: No module named faker in <script> at line number 4javax.script.ScriptException: ImportError:”

  

 

     测试的过程中遇见了很多坑,目前主要发现JSR223 Sampler Python脚本不支持python3和不设置解析器会搜索的前目录,所以需要在实践的过程中注意些。

 

.    

  

标签:Java,Python,JSR223,十二,JSR,Sampler,Jmeter
来源: https://www.cnblogs.com/mengyu/p/13323957.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有