A. jmeter入门 设置代理服务器和录制脚本
第一步:
可以设置浏览器代理,本文章推荐使用火狐浏览器
在浏览器—首选项--网络设置里面设置代理服务器
注意:端口号可以自行设置,但是不可以与本机其他代理产生冲突
第二步:
打开jmeter工具,添加非测试原件—HTTP代理服务器,
第三步:
设置端口号与浏览器设置的代理端口保持一致,注意线程组下面记得添加:HTTP Cookie 管理器
第四步:
填写录制的过滤条件,可以过滤掉一些不必要的接口
过滤条件可以使用:
*\.(js|css|PNG|jpg|ico|png|gif|woff|ttf|txt).*
这样基本设置就完成了,可以点击jmeter的代理服务器,录制脚本了;
点击启动,复制要测试的网址在火狐浏览器上,点击项目进行正常操作,接口就会自动录制,录制的接口可以手动筛除重复的;
注意: (这个已经改过了,不需要改,可以按照步骤去看一下文件哪个位置改了)
常见问题:
录制的Jmeter脚本回放时,发现输入的中文解析成乱码了
解决步骤:
1、打开Jmeter的安装目录,进入bin文件夹,编辑文件:jmeter.properties
2、将文件内容#sampleresult.default.encoding=ISO-8859-1
更改为:sampleresult.default.encoding=utf-8
(注意去掉前面的#号注释,否则不生效)。
B. 如何设置代理、设置好配置脚本 ,有一个pac文件但是不知道怎么导入
给你看两个浏览器的PAC代理使用,一个是火狐:在配置代理的界面最下方,有个自动代理配置的地方,你只需要把你代理放置的位置的物理地址Copy进去就好了!另外一个是IE,凡是IE内核的浏览器设置方法是一样的,在浏览器的internet选项打开,然后找到连接选项卡,在下面部分有个局域网设置打开,在最上面的两个复选框内大狗,在第二个复选框后面的文本框内填写你的PAC文件放置的物理位置即可。
注意:配置好代理后,需要重启浏览器使之生效!
C. 如何通过添加js脚本进行http代理
在Ajax应用程序中,XmlHttpRequest对象负责将用户信息以异步通信地发送到服务器端,并接收服务器返回的响应信息和数据。
XMLHttpRequest简介
XMLHttpRequest可以提供不重新加载页面的情况下更新网页,在页面加载后在客户端向服务器请求数据,在页面加载后在服务器端接受数据,在后台向客户端发送数据。XMLHttpRequest 对象提供了对 HTTP 协议的完全的访问,包括做出 POST 和 HEAD 请求以及普通的 GET 请求的能力。XMLHttpRequest 可以同步或异步返回 Web 服务器的响应,并且能以文本或者一个 DOM 文档形式返回内容。尽管名为 XMLHttpRequest,它并不限于和 XML 文档一起使用:它可以接收任何形式的文本文档。XMLHttpRequest 对象是名为 AJAX 的 Web 应用程序架构的一项关键功能。
XMLHttpRequest和Javascript
Javascript本身并未具备向服务器发送请求的能力,要么使用window.open()方法重新打开一个页面向服务器提交请求,要么使用XMLHttpRequest对象发送请求。不同的是,前者是普通的即同步交互模式,而后者是异步交互方式。
D. JMeter之代理服务器录制脚本
在JMeter中可以使用自身就带的HTTP代理服务器组件录制脚本,可以录制在WEB上的操作,也可以录制在手机App上的操作。
1、测试计划内包含的元件
添加元件操作步骤:
创建测试计划
创建线程组:选中“测试计划”右键 —> 添加 —> 线程(用户) —> 线程组。
在线程组中,添加配置原件“HTTP Cookie管理器”组件:选中“线程组”右键 —> 添加 —> 配置元件 —> HTTP Cookie管理器。
说明:如果录制的操作包括 用户登录操作 ,则需要添加“HTTP Cookie管理器”,添加之后不需要任何配置,录制后,脚本中便保存用户登录的相关信息。
在测试计划下,添加非测试元件“HTTP代理服务器”组件:选中“测试计划”右键 —> 添加 —> 非测试元件 —> HTTP代理服务器。
在HTTP代理服务器组件下,添加监听器“察看结果树”组件:选中“HTTP代理服务器”右键 —> 添加 —> 监听器 —> 察看结果树。
最终测试计划中的元件如下:
点击运行按钮,会提示你先保存该脚本,脚本保存完成后会直接自动运行该脚本。
2、HTTP代理服务器的设置内容
在HTTP代理服务器组件中,我们需要编辑:
端口: 默认8888,一般使用默认即可。主要不能与本地其他服务的端口号冲突,否则启动不了。
HTTPS Domains: 我的理解就是,设置代理服务器的主机IP地址或者域名。因为在我们本地使用,一般就是 localhost 或者127.0.0.1即可,当然不填写也是可以的。(此填写的地址一定要能够连接外网)
设置目标控制器: 也就是录制的组件存储到什么位置。这个一定要选,下图中选择了存储到目标线程组中。
配置完的界面内容,如上图所示。
3、设置浏览器的代理服务器
每个浏览器都可以设置服务器的代理,以Chrome浏览器为例。【设置需要区分是否为局域网】
点击右上角的设置 —> 高级 —> 系统 —> 最下面的‘’打开您计算机的代理设置‘’,点击右侧图标,就可以进入到代理服务器的设置页面了。
选要选中手动配置代理服务器,然后输入代理服务器的地址或者域名,还有端口号。
这里的配置,要和上面JMeter的HTTP代理服务器中的端口和HTTPS Domains的配置要对应上。
这样的话,浏览器中的操作,会先发送到JMeter中的HTTP代理服务器,在通过网络进行传输。这样JMeter中就可以录制下我们的操作,生成脚本了。
如下图所示:
4、录制脚本
以上内容设置完毕后,在浏览器地址栏中输入要录制脚本的地址。
然后在JMeter中的HTTP代理服务器界面,点击启动按钮。
提示:在HTTP代理服务器界面点击“启动”时,Meter将生成自己的证书。证书生成可能需要一些时间,在此期间,GUI将无响应。证书生成完成后,GUI将显示一个弹出对话框,其中包含根CA证书的详细信息,证书有效期为7天。该证书需要由浏览器安装,以便接受JMeter生成的主机证书。
如下图所示:
浏览器配置证书: 浏览器中导入证书 ,jmeter安装目录下的ApacheJMeterTemporaryRootCA.crt
之后开始在网站上进行操作,所有操作发出的请求,都会录制到JMeter脚本中。
操作完成之后,到JMeter的HTTP代理服务器中点击“停止”,然后将浏览器的代理设置恢复原样即可。
不恢复的话,会导致你无法使用浏览器访问外网。
如下图所示:【录制时弹出的控制器,不用进行设置,关闭时 点击 停止 即可】
5、查看录制的脚本
在JMeter中我们可以看到已经 记录 了许多请求对应的信息,包括PHP、js、.jpg、.png、.txt等请求。
如下图所示:
我们可以看到,我们只进行了简单的几步操作,却录制这么的请求。是因为JMeter录制很多非关键性的请求,这就需要我们进行一些优化。
录制脚本的优化有两个步骤:
在录制的时候,做一些过滤和排除操作。
在录制后的脚本中手动优化,删除不需要的组件,增加自己需要的组件。
1)服务器名称或IP与目标网站不同的、无关的,可以删除。
2)js/css/png/jpeg等这类请求删掉。
3)没有传递任何数据的请求可以屏蔽掉,等流程能回放成功了,这些再删除。如果回放不成功,再一个一个打开,进行检查。
6、HTTP代理服务器的排除模式
在测试脚本中有一些录制的信息是没有任何作用的,所以我们在录制脚本的时候,就可以通过HTTP代理服务器的排除模式,排除一些不需要的请求信息,如css、gif、png等请求。
例如:
在包含模式添加填上 .*\.jsp,只在请求JSP文件时录制脚本。
这里通常都是设置JSP或者HTML,可以根据具体情况进行填写。
在排除模式处填上.*\.js ,在请求js文件时不录制脚本。
这里通常都是设置js、jpg、png、gif、css等,这些类型文件请求都是不需要录制的。
当然我们也可以点击添加建议排除按钮,会自动生成一个过滤的正则表达式。
如下图所示:
添加上这些时候,录制出来的脚本,多余的累赘会减少很多。
7、保存脚本
脚本录制完成后,需要进行脚本的保存。
把脚本保存到本地,可以分享给其他成员,进行查看、编辑、回放等操作。