我们在应用程序中实现了浏览器缓存,当用户登录应用程序并单击链接时,在第一次API 1调用时,响应将缓存在本地存储的浏览器中。在下一次API 1调用时,它从浏览器缓存中获取,而不是访问服务器。再次当用户关闭浏览器并启动新的浏览器或会话过期时,重复相同的过程。第一个API 1调用浏览器本地存储的缓存响应,下一个API 1调用从浏览器缓存中获取。我有10个并发用户点击这个API的持续时间为1小时。会话每30分钟过期一次。我如何使用JMeter模拟上述行为。感谢任何人能在这方面提供帮助。
wmvff8tz1#
Local Storage != browser cache,浏览器缓存可以使用HTTP缓存管理器模拟,用于模拟假设使用本地存储的操作,您将需要有一个真实的浏览器。根据Window.localStorage文档:窗口接口的localStorage只读属性允许您访问Document源的Storage对象;所存储的数据跨浏览器会话保存。而Document是:Document接口表示在浏览器中加载的任何网页,并充当进入网页内容的入口点,即DOM树。根据JMeter project main page:JMeter不是一个浏览器,它工作在协议级别。就Web服务和远程服务而言,JMeter看起来像一个浏览器(或者更确切地说,多个浏览器);然而,JMeter并不执行浏览器支持的所有操作。特别是,JMeter不执行HTML页面中的JavaScript。它也不像浏览器那样呈现HTML页面(可以将响应视为HTML等,但计时不包括在任何示例中,并且一次只显示一个线程中的一个示例)。因此,实现您的场景的唯一方法是使用真实的浏览器,例如,您可以考虑使用WebDriver Sampler,它提供了JMeter与Selenium浏览器自动化框架的集成,这样您将拥有本地存储并能够在需要时清除它。WebDriver Sampler可以使用JMeter Plugins Manager安装
1条答案
按热度按时间wmvff8tz1#
Local Storage != browser cache,浏览器缓存可以使用HTTP缓存管理器模拟,用于模拟假设使用本地存储的操作,您将需要有一个真实的浏览器。
根据Window.localStorage文档:
窗口接口的localStorage只读属性允许您访问Document源的Storage对象;所存储的数据跨浏览器会话保存。
而Document是:
Document接口表示在浏览器中加载的任何网页,并充当进入网页内容的入口点,即DOM树。
根据JMeter project main page:
JMeter不是一个浏览器,它工作在协议级别。就Web服务和远程服务而言,JMeter看起来像一个浏览器(或者更确切地说,多个浏览器);然而,JMeter并不执行浏览器支持的所有操作。特别是,JMeter不执行HTML页面中的JavaScript。它也不像浏览器那样呈现HTML页面(可以将响应视为HTML等,但计时不包括在任何示例中,并且一次只显示一个线程中的一个示例)。
因此,实现您的场景的唯一方法是使用真实的浏览器,例如,您可以考虑使用WebDriver Sampler,它提供了JMeter与Selenium浏览器自动化框架的集成,这样您将拥有本地存储并能够在需要时清除它。
WebDriver Sampler可以使用JMeter Plugins Manager安装