JMeter测试登录模块测试用例设计时如何快速找到票根

1752人阅读
性能测试(21)
感觉在Jmeter中使用外部的java文件比较方便,语法一样,而且可以直接引用,所以个人觉得这个功能还是蛮重要的,特别是在使用Jmeter的过程中,可能需要结合一定的业务场景进行判断等,那使用Jmeter带有的函数可能并不能够满足自己的测试需求,在这时候,使用自己编写的函数就可以很好的满足自己的需求。
一、可以直接使用直接编写java文件或者class文件,之前已经有一篇博文,,这里满有三种方法可以使用java文件,其中后两种是引入外部的java文件,第一种是直接在jmeter中编写函数。
二、除了上述几种方法之外,还有一种是将java文件转化为jar文件,在jmeter中直接调用,我觉得这种方法应该是最方便的,把jar包存在在一个目录中,配置路径,然后就可以像在Eclipse中一样进行调用了,下面将详细讲解如何在Jmeter中使用外部的jar文件。
1.首先将java文件生成jar文件,生成方法在上一篇博文有详细解述,博文url:
2.在jmeter目录下新建一个文件,自己随便命名文件夹名称,这里是dependencies,然后将已经生成好的jar包放在这个目录下,这里的jar包文件名称是com.test.Math.SqrtCalc.jar(上一篇博文中生成的jar包,功能就是有一个sqrt函数,求平方值,比较简单,详细内容) ,如下图:
3.然后打开bin目录文件夹下的jmeter.properties文件,介意使用ctrl+f查找plugin_dependency_paths 这个属性,然后设置为
plugin_dependency_paths=../ ,如下图:
4.下面就开始在Jmeter中调用这个函数了,首先打开Jmeter,新建一个测试计划,在这个测试计划中新建一个线程组,然后线程组下新建一个BeanShell Sampler,只需要再BeanShell Sampler下面的Script框中写入代码,不用其他配置,这里代码文件是:
import com.test.Math.*
String ret = SqrtCalc.sqrt("4.0")
log.info("Value=" + ret)
//将jar包地址使用import,就成了上面的代码
//String ret = com.test.Math.SqrtCalc.sqrt("4.0")
//log.info("Value=" + ret)
为了查看结果方便,这里打开“选项 –& Log Viewer”,如下图:
5.点击运行,在log中可以查看相应的结果,
这里只是一个比较简单的jar包的引入和函数的调用,深一点的知识本人也在学习中…..
&&相关文章推荐
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:122934次
积分:2622
积分:2622
排名:第12685名
原创:136篇
转载:36篇
评论:26条
(34)(27)(6)(9)(44)(52)最近在使用jmeter对一个应用进行简单的性能测试。这个应用包含CAS单点登录模块。根据CAS 协议,jmeter中的登陆请求中配置好需要提供的参数(username/password/lt/service/_eventId),执行脚本后,登陆成功,返回的数据却是CAS登陆成功的页面数据,并不是我在service参数中指定的地址。
google一番,没有找到满意的答案(可能是搜索技巧不够)。有的用户反馈说可能是jmeter不能执行页面返回数据中的js跳转,要使用jsp跳转。但这样岂不是要修改CAS的登陆成功的页面?我目前没有修改任何源码的权限,只能使用这个应用的环境。
请问大家有遇到过这类问题的吗?
该问题被发起重新开启投票
投票剩余时间:
之前被关闭原因:
该问题被发起删除投票
投票剩余时间:
距离悬赏到期还有:
参与关闭投票者:
关闭原因:
该问题已经被锁定
锁定原因:()
保护原因:避免来自新用户不合宜或无意义的致谢、跟帖答案。
该问题已成功删除,仅对您可见,其他人不能够查看。
在此之前对CAS了解还不充分,经过查阅官方文档的协议说明,找到如下内容:(from http://www.jasig.org/cas/protocol)
2.2.4. responseOne of the following responses MUST be provided by /login when it is operating as a credential acceptor.
successful login: redirect the client to the URL specified by the "service" parameter in a manner that will not cause the client's credentials to be forwarded to the service. This redirection MUST result in the client issuing a GET request to the service. The request MUST include a valid service ticket, passed as the HTTP request parameter, "ticket". See Appendix B for more information. If "service" was not specified, CAS MUST display a message notifying the client that it has successfully initiated a single sign-on session.
原来是这样,需要对CAS的login地址重新发送一次GET请求,传递service、ticket两个参数即可跳转页面到service地址。这里的ticket就是登陆请求中的lt值。
于是,页面成功跳转,测试得以继续。。。
不是您所需,查看更多相关问题与答案
德问是一个专业的编程问答社区,请
后再提交答案
关注该问题的人
共被浏览 (6840) 次君,已阅读到文档的结尾了呢~~
[计算机]jmeter安装与使用教程
性能测试模块安装(转)开源 java 压力测试工具 JMeter 安装文章分类:Java 编程 首先非常感谢:blogjava 的小蚂蚁,他的文章给了我很大的帮助,他的文章已经写分非常详细,我这里直 接转载过来,然后再对可能引起疑问的地方进行注释。 转自:http://www.blogjava.net/lijun_li/archive//25/;ht&b..
扫扫二维码,随身浏览文档
手机或平板扫扫即可继续访问
[计算机]jmeter安装与使用教程
性能测试模块
举报该文档为侵权文档。
举报该文档含有违规或不良信息。
反馈该文档无法正常浏览。
举报该文档为重复文档。
推荐理由:
将文档分享至:
分享完整地址
文档地址:
粘贴到BBS或博客
flash地址:
支持嵌入FLASH地址的网站使用
html代码:
&embed src='/DocinViewer-4.swf' width='100%' height='600' type=application/x-shockwave-flash ALLOWFULLSCREEN='true' ALLOWSCRIPTACCESS='always'&&/embed&
450px*300px480px*400px650px*490px
支持嵌入HTML代码的网站使用
您的内容已经提交成功
您所提交的内容需要审核后才能发布,请您等待!
3秒自动关闭窗口Jmeter - sysu_lluozh - 博客频道 - CSDN.NET
sysu_lluozh
我的博客文章
在写一个接口时,该接口的参数规则如下://参数规则
deviceIds: ['string'], //* 选中的设备
channel: 'number',
station: 'number|0',
type: 'number',
//假设选中了定时模式
最近做了一轮的remote6服务端的接口测试,总结一下确定测试数据
当前注册码数据
区域总数:100
学校总数:750
设备总数:32560
本次迭代支持场景
每个学校设备数:1-200台
(80%分布在:30-100)
每个学校用户数:1-5确定测试模块学校版:
设备管理_设
在压测需求较大并发量时,如1000以上,但是单台客户端难以实现,因此需要多台客户端并行,并且能同步控制jmeter的分布式控制
客户端机器作为一个控制器controller,控制多台slave机器的操作
controller通过GUI界面启动slave机器,将jmeter压测发送给每台启动的slave
slave获得脚本后开始执行,slave本地不需预先存储脚本
各台slave执行完成后,将结果传回
在写remote6接口候,在测试前需要进行测试分析并构造测试数据账号这些可以使用csv data config来实现还有一种不同进程需要不同的变量时,可以使用随机数
${__Random} 其实还有一种蛮好用的Jmeter元素,即Counter(计数器)添加Counter(计数器)看看计数器的定义Allows the user to create a counter that can be ref
在remote6学校版接口编写时,PUT方法请求时响应的数据为:{&message&:&&,&statusCode&:500}实际请求的数据为不难发现PUT data竟然为空为了排除是Java后台的问题,使用Postman发送该PUT请求,如下:说明Postman请求是没问题,那么基本可以排除是被测的Java后台的问题如果将参数直接写在url上,是可以请求成功的请求的数据如下:响应数据为:{&sta
在写remote6学校版的java后台接口时,碰到一个accessToken的问题,现在Mark一下设备管理_获取唤醒服务器 这个接口失败,响应数据为:{&data&:&没有token&,&statusCode&:401}让我们再看看请求参数不难发现accessToken
为空但是同一个接口请求
这个请求中是带有 accessToken 那问题在哪里呢?禁用两个接口中间的3个接口,请求的结果如下
JMeter处理responses 的json对于请求1返回的结果,处理以后作为请求2的参数,JMeter提供了正则表达式提取器如下:这样也可以通过正则表达式获取responses的某个值但是对于大部分请求返回的结果,都是json,有一个更方便使用的插件:JSON
不过得首先下载插件 https://jmeter-plugins.org/wiki/JSONPathExtrac
remote6中,从数据库中sql语句查询获取数据与请求结果进行校验。sql语句中,需要查询sr_report_power_times_org 表格中的数据:该表的格式为:如下查询时:SELECT * FROM sr_report_power_times_org WHERE date = ' 09:57:07'获得的数据为:现在需要查询的是 的数据查询的语句为
在remote6局域版项目中,在接口请求时,需要验证请求数据的正确性,故考虑是否需要Jmeter从数据读取数据进行验证添加需要的驱动jar包使用不同的数据库,需要引入的jar包是不一样的
mysql:无需引入其他数据库驱动jar包
sql server:下载sqljdbc.jar包
oracle:oracle数据的安装目录下面的\product\10.2.0\db_1\jdbc\lib\ojd
在做EasiCare接口的并发测试时,以为在0秒时起N个线程就是一个并发的请求。做EN3接口并发测试才发现然而并不是这样的有一个业务流,业务流中有接口A、接口B、接口C、接口D
现在做100个并发,即起100个线程,因为100个线程起来后,每个线程都是完成接口A后,接着进行接口B的请求,以此类推。
可以发现,因为各个线程接口A请求响应的时间不一致,故100个线程对B接口的请求并不是同一个时刻点,
lluozh2015
排名:第13129名
(17)(19)(12)(11)(15)(13)(15)(1)(3)(32)(17)(3)(6)

我要回帖

更多关于 登录模块测试用例设计 的文章

 

随机推荐