• Jmeter文档翻译三--常用


    http://jmeter.apache.org/usermanual/component_reference.html
    18、介绍
    一些测试元素使用Jmeter属性控制它们的行为。这些属性通常在装入类时解析。通常发生在测试计划开始之前,因此不能通过使用setProperty()函数更改设置。
    18.1 采样器
    采样器执行Jmeter的实际工作,每个采样器(除流量控制操作除外)生成一个或多个样本结果。样本结果具有各种属性(成功/失败,经过时间,数据大小等),可以在各种侦听器查看。

    FTP请求

    这个控制器允许您向FTP服务器发送一个”检索文件“或”上传文件“FTP请求。如果你打算向同一个FTP服务器发送多个请求,可以考虑使用FTP请求默认配置元素,这样你就不必为每个FTP请求生成控制器输入相同的信息。当下载文件时,它可以存储在磁盘(本地文件)或响应数据中,或两者兼备。

    延迟时间设置为登录所需时间。

     

    属性 描述 是否必需
    名称 在测试计划中显示该采样器名称     No
    服务器名称或IP FTP服务器的名称或IP地址 Yes
    端口 端口使用。若果该选项填充数值,则会使用该端口。否则,JMeter将会使用默认的FTP端口 No
    远程文件 要下载的文件或要上传的目标文件的名称 Yes
    本地文件 准备上传的文件,或从远程下载存为本地的文件名 Yes
    是,如果上传(*)    
    本地文件内容 提供上传的内容,覆盖“本地文件”属性  
    是,如果上传(*)    
    get(下载)/put(上传) 是否下载或上传文件 Yes
    使用二进制模式? 勾选此项使用二进制模式 (默认ASCII) Yes
    保存文件响应? 在响应数据中是否保存下载的文件内容,如果是ASCII,则内容在View Result Tree可见。 Yes
    是,如果下载    
    用户名 FTP 账户用户名 Usually
    密码 FTP 账户密码,注:这将在测试计划中显示 Usually

    HTTP请求

    此采样器允许您向Web服务器发送HTTP/HTTPS请求。它允许您控制Jmeter是否为图像和其它嵌入式资源解析HTML文件,并发送HTTP请求来下载。下载类型的资源如下:

    --图片

    --应用程序

    --样式表(CSS)和文件中引用的资源

    --外部脚本文件

    --iframes背景图像(体,表,表格TD标签,表格TR标签)

    --背景声音

    默认的解析器是 org.apache.jmeter.protocol.http.parser.LagartoBasedHtmlParser。这可以通过使用属性“htmlparser”改变。className-参见Jmeter.

    如果你打算向同一个web服务器发送多个请求时,建议使用HTTP请求默认配置元素,这样不必为每个HTTP请求输入相同的信息。或者,与手动添加HTTP请求不同,你可能希望使用Jmeter的HTTP(s)测试脚本记录创建。若您有许多HTTP请求或带有许多参数的请求,这样做可以节省时间。

    在该采样器中有三个不同的测试元素:

     AJP/1.3 Sampler

    注:

    AJP协议:AJP--Apache JSev Protocol 是定向包协议,连接器监听8090端口,负责和其它的HTTP服务器建立连接,在把Tomcat与其它HTTP服务器集成时,使用该连接器。

    HTTP协议:连接器监听8080端口,负责建立HTTP连接。在通过HTTP连接。在通过浏览器访问Tomcat服务器的Web应用时,使用该连接器。

    使用Tomact mod jk协议(允许Tomcat在AJP模式下测试,不需在Apache httpd),该AJP Sampler不支持多文件上传,只能使用第一个文件。

    HTTP Request

    添加HTTP请求后,可以点击协议下拉框,选择使用的HTTP协议实现请求

    Java

    使用JVM提供的HTTP实现,与HttpClient相比,具有一些限制,见下。

    HTTPClient4

    使用HttpComponents 的HttpClient 4.x。

    空白值

    没有在HTTP采样器上设置实现,依赖于HTTP请求默认值(如果存在或在Jmeter上),定义在jmeter.properties中的HttpSampler属性。

    图形化的HTTP Request

    这是HTTP请求的GUI变化,以方便的UI元素来查看或编辑GraphQL查询,变量和操作名称,同时使用相同的采样器将它们转换为HTTP参数。这隐藏或自定义了以下UI元素,因为它们不方便或将GraphQL http/https请求无关:

    方法(Method):只有POST和GET方法符合GraphQL over HTTP规范,默认选择POST方法。

    参数(Parameters) 和 Post 参数:你可以通过Query,Variables和 Operation Name 页面元素来查看或编辑参数内容。

    文件上传(File Upload):与GraphQL 查询无关紧要。

    高级选项-从HMTL文件中嵌入资源:与GraphQL JSON响应中无关紧要。

    JAVA HTTP实现一些限制:

    --无法控制如何重用连接。当一个链接被Jmeter释放时,它可能被同一个线程重用,也可能不被重用。

    --API最适合单线程使用,各种设置都是通过系统属性定义,适用于所有连接。

    --不支持Kerberos身份验证(Kerberos--是计算机网络授权协议,用在非安全网络中,对个人通信以安全的手段进行身份认证)

    --不支持使用Keystore配置进行基于客户端证书测试

    --更好的控制重试机制

    --不支持虚拟主机

    --它仅支持以下方法:GET、POST、HEAD、OPTIONS、PUT、DELETE和TRACE

    --使用DNS缓存管理器更好的控制DNS缓存

    注:File协议(本地文件传输协议,主要用于访问本地计算机中的文件,如同在Windows资源管理器中打开文件一样;基本格式如下:file:///文件路径)仅用于测试目的。不管使用哪个HTTP采样器,都由相同代码处理。

    如果请求需要服务器或代理登录授权(即浏览器会创建一个弹出对话框),你还必须添加一个HTTP授权管理器配置元素。对于普通登录(即用户在表单中输入登录信息),你需要根据请求的实际方法(如:POST方法)和表单中定义的参数创建一个HTTP请求,如果使用HTTP,可以使用JMeter Proxy来捕获登录。

    每个线程使用一个单独的SSL上下文,如果你想使用单个SSL上下文(不是浏览器的标准行为),可设置JMeter属性:

    https.sessioncontext.shared=true
    

     默认情况下,由于版本5.0,SSL上下文在线程组迭代期间保留并为每个测试迭代重置。若在测试计划中,相同的用户多次迭代,你可以将其设置false。

    httpclient.reset_state_on_thread_group_iteration=true
    

     注:这不适用于Java HTTP实现。

    JMeter 默认为SSL协议级别TLS。若服务器需要一个不同的级别,如SSLv3,请更改JMeter属性。

    https.default.protocol=SSLv3
    

     JMeter允许通过更改属性来启动其它协议 https.socket.protocols

    如果请求使用Cookie,则需要HTTP Cookie管理器。你可以将这些元素添加到线程组或HTTP请求中。若你有多个需要授权或cookie的HTTP请求,则将元素添加到Thread Group。这样,所有HTTP请求将共享相同的授权管理器和Cookie管理器。

     若请求使用“URL重写”的技术,可参考6.1节处理用户会话,以获取其他配置步骤的URL重写。

    请求变量值:

    属性                         描述 是否必填
    名称 在测试计划中显示该样本名称
    服务器名称              服务器的名称或IP地址,如:www.example.com。不包含“http://”前缀。注:若在HTTP请求头管理器中未定义“Host”,它将使用虚拟主机名
    端口 服务器默认端口:80
    连接超时 连接超时。等待连接打开的毫秒数
    响应超时

    响应超时。等待响应的毫秒数。注:这适用于每次等待响应,如服务器响应以多个块的形式发送,则总运行时间可能比超时时间长

    持续时间断言可用于检测耗时太长而无法完成的响应

    服务器(代理) 服务器(代理)执行请求的是代理服务器的主机名或IP地址(不包括http://前缀)
    端口 代理服务器监听的端口  
    指定了代理主机名
    用户名 代理服务器的用户名(可选)
    密码 代理服务器的密码(可选),如:测试计划中存储为未加密的
    实现   JAVA,HttpClient4。若没有指定(也没有HTTP Request Defaults定义),默认值取决于JMeter属性JMeter的值。若失败,则使用HttpClinet4实现
    协议   HTTP,HTTPS或者FILE。默认为HTTP
    方法 GET,POST,HEAD,TRACE,OPTIONS,PUT,DELETE,PATCH(不支持JAVA实现)。使用HttpClient4,则可以关联方法:COPY,LOCK,MKCOL,MOVE,PROPFIND,PROPPATCH,UNLOCK,REPORT,MKCALENDAR,SEARCH
    内容编码   要使用的内容编码(用于POST、PUT、PATCH和FILE),要使用的字符编码,与Content-Encoding HTTP无关
    自动重定向

    设置底层http协议处理程序自动进行重定向,因此JMeter不会看到它们,因此不会作为示例出现。只能用于GET和HEAD请求,HTTPClient采样器将拒绝使用它进行POST或PUT的尝试

    跟随重定向

    这只有在“自动重定向”未启用时才有效。若设置了,JMeter采样器将检查响应是否是一个重定向,若是,则遵循它。最初的重定向和进一步的响应将作为额外的示例显示。父样例的URL和数据字典将取自最终(非重定向)样例,但父样例的字节计数和运行时间包括所有样例。延迟是从初始响应中获取。注意:HttpClient采样器可能会记录以下信息:“"Redirect requested but followRedirects is disabled”,这个将被忽视。Jmeter将在绝对和相对重定向URL中折叠“/../segement”形式的路径。

    如:http://host/one/../two 将折叠为 http://host/two。若有必要,可以通过设置JMeter属性来重写该行为 httpsampler.redirect.removeslashdotdot=false

     否
     使KeepAlive       JMeter设置Connection:keep-alive报头。这在默认HTTP实现中不能正常工作,因为连接重用不受用户控制。适用于Apache HttpComponents HttpClient实现一起工作  否
     使用multipart/form-data作为Post请求数据  使用multipart/form-data 或 application/x-www-form-urlencoded 作为post请求  否
     与浏览器兼容头  当使用multipart/form-data,将重写 Content-Type 和 Content-Transfer-Encoding头部,只发送Content-Disposition报头  否 
     Path

     资源路径(如:/servlets/myServlet)。若果资源需要查询字符串参数,可参考下:

    作为一个特殊情况,若路径以“http://”或“https://”开头,那么这个用作完整的URL。在这种情况下,服务器、端口和协议字段均被忽略,参数在Get和Delete方法中也被忽略。另外。除了用%20替换空格外,该路径没有进行编码,因此可能需要对不安全字符进行编码,以避免出现URISyntaxException之类的错误

     否
     与请求一起发送参数

    查询字符串将从提供的参数列表中生成,每个参数都有一个名称和值、用于对参数进行编码的选项及包含或排除等号的选项(当值为空字符串时,有些应用程序不希望使用等号),查询字符串将以正确的方式生成,取决于你选择的方法(如:若你选择GET或DELETE,查询字符串将被加到URL,若POST或PUT,它将被单独发送)。此外,若将使用多部分表单发送文件,查询字符串将使用多部分表单规范创建,见下。此外,

    • ASCII控制字符
    • 不是ASCII控制字符
    • 转义字符:URL在定义语法是使用一些特殊字符。这些字符不在URL中的特殊角色中使用时,需要对他们进行编码。如:‘$’、'&'、'+'、','、‘/’,‘:’,‘;’,‘=’,‘?’,‘@’
    • 不安全的字符:由于各种原因,有些字符可能会在url中被误解。这些字符应该总是被编码,如:‘’,‘<’,'>',‘#’,‘%’
     否
     文件路径

     要发送的文件的名称。如果为空,JMeter不发送文件,若填写,JMeter自动将请求作为一个多部分表单请求发送

    若是一个POST、PUT或PATCH请求,并且有个文件的'Parament name'属性(下面)被省略,那么该文件将作为请求的整体发送,即不添加包装器。允许发送任意的正文,此用于POST请求,也用于PUT请求。

     否
     参数名称  web请求参数名称  否
     MIME类型

    MIME类型(如:text/plain), 如果它是一个POST、PUT或PATCH请求,且省略了‘name’属性(如下所示)或请求体仅由参数值构造,那么该字段的值将用作content-type请求头的值。

     否
     从HTML文件获取所有内含的资源  告诉Jmeter解析HTTP/HTTPS请求中HTML文件中引用的所有图像、Java小程序、JavaScript文件、CSS等  否
    保存响应为MD5哈希 若选择此项,则响应不会存储在示例结果中。相反,计算存储数据的32个字符的MD5哈希值,目的是为了测试大量数据。   否
     URLs必须匹配  若果存在,则必须是一个正则表达式,用于匹配任何内含url。所以如果你想从http://example.invalid/下载嵌入资源,使用表达式http://example.invalid/.*  否
     URLs必须不匹配  若存在,它必须是一个正则表达式,用于过滤发现的任何嵌入url。所以,若你不想从任何来源下载PNG或SVG文件,使用表达式:.*.(?i:svg|png)  否
     使用并发池  使用并发连接池来获取嵌入式资源  
    大小 用于获取嵌入式资源的并发连接的池大小  
    源地址类型

    [仅用于HTTP请求与HTTPClient实现] 要区分源地址值,请选择它们的类型:

    • 选择IP/主机名以使用特定的IP地址或(本地)主机名
    • 选择Device为该接口选择第一个可用的地址,该地址是IPV4或IPV6
     
         
         
         
         

     JDBC请求

     该样本请求可以让你针对数据库发送JDBC请求(一个SQL查询)。

    在使用之前,你需要建立JDBC Connection Configuration Configuration元素。如果提供了Variable Names列表,则Select语句返回的每一行,将使用相应列的值设置变量(若提供了变量名),并设置行数。如:若果Select语句返回3列2行,变量名是A,,C,那么将设置以下变量:

    A_#=2 (number of rows)
    A_1=column 1, row 1
    A_2=column 1, row 2
    C_#=2 (number of rows)
    C_1=column 3, row 1
    C_2=column 3, row 2

    如果Select语句返回0行,那么A#和C#变量设置为0,而不会设置其他变量。若必要,旧变量会清除,如:若第一个选择检索六行而第二个选择仅返回三行,则第四、第五和第六行的附加变量将被删除。

    延迟时间是从获取连接所用的时间开始设置的。

    年级大了,只能记了!!!
  • 相关阅读:
    luogu P1613 跑路
    luogu P2047 社交网络
    luogu P2740 [USACO4.2]草地排水Drainage Ditches
    「字典树」最大异或对
    「贪心」耍杂技的牛
    「贪心」士兵
    「贪心」糖果传递
    「几何」[USACO12DEC]疯狂的栅栏Crazy Fences
    「LCA」[USACO10HOL]牛的政治Cow Politics
    「二分答案 + 前缀和」防线
  • 原文地址:https://www.cnblogs.com/shuozhang/p/15080938.html
Copyright © 2020-2023  润新知