• 13
  • 13
分享
  • Jmeter进阶:详解HTTP请求和JDBC request——软件测
  • 曼倩诙谐 2021-07-23 10:29:53 字数 2113 阅读 2229 收藏 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软件测试网原创

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

热门文章

    最新讲堂

      • 推荐阅读
      • 换一换
          • 习近平总书记指出,坚持从实际出发、实事求是,不只是思想方法问题,也是党性强不强问题。干部是不是实事求是可以从很多方面来看,最根本的要看是不是讲真话、讲实话,是不是干实事、求实效。年轻干部要坚持以党性立身做事,把说老实话、办老实事、做老实人作为党性修养和锻炼的重要内容,敢于坚持真理,善于独立思考,坚持求真务实。实事求是是我们党的思想路线的重要内容,早在延安时期,毛泽东同志就强调“共产党员应是实事求是的模范”,“只有实事求是,才能完成确定的任务”,认为调查研究的方法“第一是眼睛向下,不要只是昂首望天”。我们先来谈谈什么时候需要调研工作,调研工作怎么能干好。先来说说,什么时候需要调研工作?调研,就是...
            1 1 909
            分享
          •   在我有限的软件测试经历里,曾有一段专职的自动化测试经历。  接触自动化  那时第一次上手自动化测试,团队里用的是Python,接口自动化测试的框架是requests+Excel+Jenkins,APP自动化测试的框架是Appium。  整个公司当时有一款已有的APP,因此在试用期内,我的任务是完成对已有APP的自动化脚本编写和调试。  记得当时刚开始去,很没有经验,在跟功能测试同学了解了业务之后,只顾埋着头部署环境,突然有一天,测试主管问我,是否要输出一份自动化测试用例。我恍然大悟,于是把功能测试的用例拿来参考了一下,对用例做了一次筛选,输出了一份自动化测试用例(现在回过头看,当时的做法真...
            0 0 639
            分享
          •   一直在51Testing网站上学习别人的测试之路,现在也想分享一下自己的经历。  结缘测试  和大家不同的地方在于,作为一名生物医学工程专业毕业生,我都是在医疗行业打转。  我的软件测试之旅分为两段,第一段是一份实习,从2019年9月到2020年1月,第二段是毕业后的第一份工作,从2020年4月到今天。  实习之路  虽然从时间上来看,我的软件测试之旅接近两年,尤其是第一份实习,虽然时间跨度有四个月,但因为当时学校导师给的压力很大,而且又赶上写论文,经常请假,因此我真正的到岗日期只有41天。  虽然时间短,但这份实习经历让我了解到什么是软件测试,算是迈入软件测试领域的第一步。  在后来的秋...
            0 0 1178
            分享
          • 一、adb环境部署准备下载jdk及安卓adt1、jdk下载地址(https://www.oracle.com/java/technologies/javase-downloads.html)配置环境变量① 打开配置环境入口右键此电脑-高级系统设置-环境变量② 配置JAVA_HOME在系统变量中新增JAVA_HOME,变量值中输入jdk安装路径(C:\Program Files\Java\jdk-15.0.1 版本号及路径可能不一致,不能直接复制)③ 编辑Path在系统变量Path中新加两条:%JAVA_HOME%\bin和%JAVA_HOME%\jre\bin(每条以英语分号隔开)④ 编辑CL...
            0 0 1176
            分享
          •   公司后端服务使用 java 重构后,很多接口采用了阿里的 dubbo 协议。而 python 是无法直接调用 dubbo 接口的,但可以通过 telnet 调用,具体可以通过 telnetlib 模块的 Telnet类 来调用,只需要四行代码即可实现:import telnetlib # 创建telnet类对象 conn = telnetlib.Telnet() # 连接dubbo接口地址 conn.open(host, port) #1.cmd命令格式: 接口全名字.方法名(参数1,参数2,参数3...参数n)&nbs...
            0 0 1453
            分享
      • 51testing软件测试圈微信