用jmeter录制脚本,除了可以用badboy工具录制,也可以使用jmeter中自带的http代理服务器录制脚本,也比较简单。
1. 首先,我们可以在jmeter中创建一个录制脚本的模板,里面添加了我们需要用到的东西,不用我们一一添加,很方便。打开jmeter,点击文件->模板,在模板页面,点击下拉框选择Recording,点创建就可以了。
创建的模板包括用户定义的变量,这里可以给变量赋值,在执行时会自动替换含有该变量的接口参数,这是全局有效的,针对所有接口。
http请求默认值中,输入http请求的ip和端口号,也是全局有效的,针对所有接口。
录制控制器,这个里面放的是每次录制完的所有请求。
http代理服务器,可以通过这个录制脚本,在“目标控制器”中选择“使用录制控制器”,在“分组”中选择“将每个组放入一个新的事物控制器中”,分组选择这个后每次录制完会单独放在控制器中,在“naming scheme”中选择“Prefix”。
2. 现在就是设置浏览器的证书和代理服务器了,这里以firefox为例,打开firefox浏览器,点击工具->设置,在页面的搜索框输入“证书”。
点击查看证书,弹出证书管理器页面,点击“证书颁发机构”,点击导入。
选择jmeter的安装目录apache-jmeter-5.5/bin下,找到ApacheJMeterTemporaryRootCA.crt证书,点击确定即可,证书就导入成功了。
ps:如果在apache-jmeter-5.5/bin目录下没有这个证书,那么先在jmeter中的http代理服务器中点击启动,就会自动在该目录下生成这个证书,刷新该目录即可看到。
再在firefox浏览器页面的搜索框输入代理。
点击设置代理服务器,设置为手动配置代理,ip输入“localhost”,端口号输入“8888”,端口号要与jmeter的http代理服务的端口号保持一致。
ps:一般firefox设置的代理只对本浏览器有效,并没有修改系统的代理服务器,设置完代理后,用firefox打开需要性能测试的地址,会发现提示服务器拒绝连接,这是正常的,后面启动jmeter的http代理服务器的时候,再次打开这个地址就可以正常打开了,录制脚本完成后,别忘了关掉代理服务器哦,要不然用firefox浏览器就不能正常访问网站了。
3. 最后就可以在jmeter中启动http代理服务器,点击“启动”。
会弹出这个提示框,点确定,之后会又弹出一个框,不用管。
然后就可以打开firefox浏览器,打开需要性能测试的地址,进行操作,操作完后点击这个“停止”。
录制结束后,会在recording controller下生成一个下图画红色框框的东西,点开就是这次录制生成的请求。
ps:如果想排除.js结尾类型和其他类型的请求,可以在http代理服务器中点击“requests filtering”,在排除模式中增加以下几行:
.*\js
(?i).*.(bmp|css|js|gif|ico|jpe?g|png|swf|eot|otf|ttf|mp4|woff|woff2|do|query)
(?i).*.(bmp|css|js|gif|ico|jpe?g|png|swf|eot|otf|ttf|mp4|woff|woff2|do|query)[?;].*