如何通过jmeter查找<app-root>元素的内部?

时间:2019-10-24 07:06:32

标签: angular jmeter

我需要查看ex内的一些元素。或按j-meter,但程序无法在“查看结果”树中看到它。

2 个答案:

答案 0 :(得分:0)

Angular应用程序是一种JS应用程序,可在客户端(浏览器)动态创建其内容。然后将生成的内容注入<app-root>中。您无法使用静态Web抓取方法来获得其内容,就像您可能尝试使用的那样。

您需要的是支持JS的真实浏览器或等效浏览器,打开给定页面,等待应用程序生成,然后使用标准技术调查DOM。

您可以尝试使用Selenium-它是允许您控制浏览器的框架-因此,请执行上述操作。我曾经将硒与无头铬浏览器一起使用,成功通过了Web报废。

有关具体操作方法的详细信息,我太广泛地描述了该问题,并脱离了这个问题。

答案 1 :(得分:0)

根据JMeter项目主页:

  

JMeter不是浏览器,它可以在协议级别使用。就Web服务和远程服务而言,JMeter看起来像一个浏览器(或更确切地说,是多个浏览器)。但是,JMeter不会执行浏览器支持的所有操作。 特别是,JMeter不会执行HTML页面中的Javascript 。它也不会像浏览器那样呈现HTML页面(可以将响应查看为HTML等,但是计时未包含在任何示例中,并且一次仅在一个线程中显示一个示例)。

所以我期望您的<app-root>标签内容通过某种形式的AJAX请求被填充,当您使用真实的浏览器打开页面时,JavaScript会触发该请求,但是不会自动执行当您运行JMeter测试时。您可以通过disabling JavaScript

在浏览器中重现该行为。

因此,您需要添加一个额外的HTTP Request采样器以模仿此AJAX调用,并且<app-root>标签内容将作为响应返回。

如果应用程序主页触发了一个以上的AJAX请求,则应将相应的HTTP请求采样器放在Parallel Controller下,因为实际的浏览器会并行执行AJAX请求,并且行为良好的JMeter测试必须代表这一点网络覆盖率达到100%的精度