Jmeter执⾏Python代码(⼗⼆)
  Jmeter 中BeanShell 中⽀持JAVA语⾔,可以使⽤Java来辅助我们实现⼀些逻辑,之前也介绍过BeanShell 导⼊,如果我们不会写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、
  我们需要选择来下载,⽬前⾥⾯提供了多种版本,我们只想选择最新版本下载;
  步骤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到变量keypython转java代码
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和不设置解析器会搜索的前⽬录,所以需要在实践的过程中注意些。
.   

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。