• 13
  • 13
分享
  • Jmeter进阶:详解HTTP请求和JDBC request——软件测
  • 曼倩诙谐 2021-07-23 10:29:53 字数 2113 阅读 2299 收藏 13

  Jmeter作为性能或自动化测试工具在开展工作时,其扮演的角色是模拟用户操作,而后记录响应结果并统计如响应时间、TPS等性能指标,而实现请求访问这个场景就要用到工具中取样器的相关功能。

  取样器的主要用来模拟用户操作向服务器发出各位请求,如webservice或Java请求等,然后根据请求获取对应的响应信息,同时配合监听器结果树等验证该接口的响应是否合理。在Jmeter中取样器的种类很多,常见的主要有HTTP请求和JDBC reques两类。

  一、HTTP请求

  1.首先在测试计划下添加线程组,在线程组中添加取样器<HTTP请求>,如图所示:

1-1.png

  2.相关参数设置说明:

  名称:定义改取样器请求目标的标识,可按需设置。

  注释:按需备注,可为空。

  基本:

  ·协议:协议支持“http”和“https”

  ·服务器名称或IP/端口:此处填写请求的目标服务端地址,端口号默认为80。

  ·http请求方法:常见的有POST和GET,两者均作为TCP链接并无本质区别

  ·路径:请求资源路径

  ·内容编码:如果内容含有中文一般为utf-8

  ·自动重定向:针对GET和HEAD请求如包含重定向则可自动跳转目标页面,但不记录前置请求,无法做内容关联

  ·跟踪重定向:Jmeter默认选项可跟踪定向并将请求返回记录与结果树中,可对响应进行关联。

  ·使用keepalive:保持http中的请求alive,默认勾选

  ·对POST使用multipart/form-data、与浏览器兼容的头:当方法为post时默认勾选该两项

  高级:

  ·客户端实现:选择http请求方式,常见为HttpClien4和Java。

  ·超时:连接超时时间、响应等待超时时间

  ·从HMTL文件嵌入资源:当需要获取响应中如图片、动画等内容时,勾选此项可对响应HTML进行解析。可以对并行资源进行定义,默认为6

  ·源地址:此属性用于实现动态IP访问,使得Jmeter具有多个IP地址

  ·代理服务器:此属性用于配置网络代理

  ·其他任务:勾选该项实现对响应报文的筛选,既仅保留响应数据的MD5值,剔除冗余信息

  二、JDBC Request

  JDBC英文名为Java Data Base Connectivity(Java数据库连接),它是Java编程语言和各类数据库之间连接标准的Java API,可以认为JDBC规范了它提供的接口,使得由Java编写的应用程序可以便捷访问底层数据库。但不同的数据库访问往往需要不同的驱动,所以在使用JDBC取样前要将目标数据库驱动放置在Jmeter的lib目录下,然后配合JDBC Connection Configuration联通数据库。

  1.首先在线程组下添加配置元件->JDBC Connection Configuration:

1-2.png

  ·Variable Name for created pool: 该变量名与Request中连接池变量名相同

  ·Max Number of Connections:数据库连接池的最大连接数

  ·Max Wait (ms) :连接超时限额,超过反回连接最大等待时间则报错

  ·Time Between Eviction Runs (ms):当前连接池保持该时长无交互则关闭

  ·Auto Commit :自动执行SQL语句

  ·Transaction Isolation:事务间隔级别设置

  ·Test While Idle:空闲时判断连接连接状态

  ·Soft Min Evictable Idle Time(ms):连接池闲置状态下保持连接的最小时长

  ·validation query:如超5秒无请求则调用该SQL测试连接有效性

  ·Database URL:数据库地址

  ·JDBC Driver class:选择lib目录下存放对应数据库的驱动

  ·Username:数据库用户

  ·Password:数据库密码

  2.然后在该线程组下添加取样器->JDBC Request:

1-3.png

  ·Variable name of Pool:数据库连接池变量名

  ·Query:填列待执行数据库SQL

  ·parameter valus:数据的参数值

  ·parameter types:数据的参数类型

  ·variable names:SQL返回的变量名,多个变量以逗号隔开

  ·result variable name:保存某变量的全部返回结果(引用${id_n}调用多行数据)

  ·query timeout:查询超时时间

  ·handle result set:定义如何处理callable statements语句结果

  取样器作为用来模拟用户请求操作和获取返回影响数据的模块,功能类似于LoadRunner中的Vuser;,以上介绍的两种请求方式可分别实现从前端请求访问和直接对数据库进行压测,作为自动化测试和性能测试的前置步骤,HTTP和JDBC使用频次高较为常见,日常测试中需要熟练掌握。



作者:赵士荣   

来源:51Testing软件测试网原创

  • 【留下美好印记】
    赞赏支持
登录 后发表评论
+ 关注

热门文章

    最新讲堂

      • 推荐阅读
      • 换一换
          • 读者提问:移动端 APP 测试,安卓手机和 iPhone 手机机型那么多,如何保证不漏测 ?阿常回答:可以采用云真机测试,选取 Top 机型。前面两天阿常和大家聊了 APP 的安装和更新测试,今天测试群内的小伙伴问到上面?的问题,阿常来和大家分享一下我的经验。市面上机型很多,基于成本考虑,公司不会采购大量的测试机,也不会因此配置更多的测试资源,而是采用云真机测试。云测试通常能将企业的软件和系统测试效率提高 50%,测试成本降低 30%。常见的云测试平台包括 Testin、TestBird、阿里云移动测试等等。拿阿里云移动测试来举例,它提供的测试服务包括兼容测试、功能测试、性能测试、远...
            0 0 1020
            分享
          • 扫盲内容:什么是接口?接口都有哪些类型?接口的本质是什么?什么是接口测试?问什么要做接口测试?怎样做接口测试?接口测测试点是什么?接口测试都要掌握哪些知识?其他相关知识?1、什么是接口?接口测试主要用于外部系统与系统之间以及内部各个子系统之间的交互点,定义特定的交互点,然后通过这些交互点来,通过一些特殊的规则也就是协议,来进行数据之间的交互。2、接口都有哪些类型?接口一般分为两种:程序内部的接口;系统对外的接口;系统对外的接口:比如你要从别的网站或服务器上获取资源或信息,别人肯定不会把数据库共享给你,他只能给你提供一个他们写好的方法来获取数据,你引用他提供的接口就能使用他写好的方法,从而达到数...
            12 12 1958
            分享
          •   智能手机原始设备制造商将设计外包给其他公司的做法非常普遍。 这通常更多的是针对经济型和低端手机的智能手机制造商。 最近的一份报告显示了哪家公司出货量最大。  根据Counterpoint Research的报告,在 2024 年上半年的外包设计出货量中,摩托罗拉位居榜首。 紧随摩托罗拉之后的是中国智能手机品牌小米,其 78% 的手机都是外包设计。 包括 VIVO、华为、HONOR 和 OPPO 集团在内的中国同行也排在同一序列。  在主要厂商中,韩国智能手机 OEM 厂商三星是采用自主设计的Android品牌中占比最高的。 2024 年上半年,三星智能手机出货量中的 ODM 产品占比为 2...
            0 0 170
            分享
          •   一 JSCover简介  JSCover是测试JavaScript的代码覆盖率工具,它是基于流行的JSCoverage工具开发的,通过在浏览器中执行之前向JavaScript代码中插桩实现的。JSCover提供三种方式来测试代码的覆盖率:服务器模式(web server mode),文件系统模式(file-system mode),代理服务器模式(proxy server mode)。JSCover是一个测试JavaScript代码覆盖率的免费工具,在https://sourceforge.net/projects/jscover/files/网站中下载JSCover工...
            15 15 2771
            分享
          •   概述  GET请求在URL中传送的参数是有长度限制的,而POST没有。  GET比POST更不安全,因为参数直接暴露在URL上,所以不能用来传递敏感信息。而POST数据不会显示在URL中。是放在Request body中。  对参数的数据类型,GET只接受ASCII字符,而POST没有限制。  GET请求参数会被完整保留在浏览器历史记录里;相反,POST请求参数也不会被浏览器保留。  GET请求只能进行url编码( application/x-www-form-urlencoded),而POST支持多种编码方式。  GET请求会被浏览器主动缓存,而POST不会,除非手动设置。  GET在浏...
            0 0 1006
            分享
      • 51testing软件测试圈微信