今天和朋友讨论一个问题。
朋友提出:如果用浏览器访问abc.com页面,F12中看到请求了100个接口;那Jmeter写abc.com,会不会触发那100个接口被调用。
朋友问了身边的人,有开发,有测试,有培训机构的老湿:大多数都是不会,给出的理由是Jmeter不会解析Js。题主主张是会的,因为浏览器发送请求,而Jmeter就是模仿浏览器发送请求。
其实后来题主思考了一下,这两种答案都过于绝对,因为题主查了一下,的确网上有说Jmeter不会解析Js,那如果是Js里面构建的链接就请求不到,那如果不是Js带出来的请求,那就不会受到影响吧,那的确这个问题就要分情况而论了。
说了这么多废话,题主今天主要的问题是:
1.我们以F12为准,访问一个地址,除了Js是否还有其他类型是Jmeter模拟不了的;
2.既然Jmeter模拟不了Js,那我们平时所说的“模拟用户访问,向服务器进行压力测试”,那我们模拟用户进行访问的时候其实就已经缺胳膊少腿了,压力测试就会和实际有偏差,那是否有什么方法可以真正的百分百模拟呢(例如大厂是怎么做的?求大厂的性能大lao分享一下)(当然其他大lao也请分享一下自己的想法)
压力测试一般都只是指后端程序执行的压力测试,js,图片,css等等通过浏览器向服务器发送请求的,都无法通过Jmeter模拟测试
而且我们常说的压力测试,一般都是指的后端程序执行访问服务器及数据库等等的压力,不包含一些静态资源对服务器造成的压力(虽然一般忽略不计)
Hi,我回答有误,jemter是支持内嵌资源访问的
这个可能是你理解方向有误,Jmeter是做接口测试的,前端的静态资源的访问压力要远远大于数据接口的,而且前端静态资源有浏览器缓存,还有cdn加速,并不是你每次访问这个网站都会请求服务端。所以别说你这个测试不出来,就是测试出来的意义在哪里呢?如果提升静态资源加载速度那就开cdn加速,如果访问量大就加贷款。