среда, 20 сентября 2017 г.

AQA: jmeter: assertion in deep dive

Multiple variables in one single Response Assertion pattern

 

Question:

I want to assert multiple variables in one single Response Assertion pattern. A method exists to verify an OR of multiple values, but i haven't found one for AND.
For example, to assert values v1, v2, or v3 - you could add in the Response Assertion > Patterns to Test >Add : v1|v2|v31. The test will pass if any one of them is found in the response. This also works with the || operator.
I need something that gives me the same flexibility with an AND condition. I'm currently having to add one pattern for each value I want to assert, and this is extremely painful to do, especially with a long assertion list.
Does anyone know of a way to combine assertion patterns using some kind of an AND operator? I have tried obvious ones, &, &&, ., +,etc. but no luck thus far.

Answer 1:

I thinks that Beanshell Assertion is that what you're looking for, it gives as much flexibility as you can think of.
Example AND-based assertion code will look like:
String response = new String(ResponseData);

if (response.contains(vars.get("v1")) && response.contains(vars.get("v2"))) {
    Failure = false;
} else {
    Failure = true;
    FailureMessage = "Specified conditions were not met";
}
You can refer to How to use BeanShell: JMeter's favorite built-in component guide for more detailed explanation and kind of cookbook. 

Answer 2:
When you add multiple lines to the Response Assertion the default operation is to AND the lines.
A separate line for each V1, V2, V3 equals V1&V2&V3.
This means you can also mix. A line for V1 and a line for V2|V3 equals V1&(V2|V3).

Example (should be tested):
@Test
    public void testWithoutTestbench() {
        driver.get(UIUrl);
        driver.manage().timeouts().implicitlyWait(5, TimeUnit.SECONDS);
        List<WebElement> elements = driver.findElements(By.id("arid_WIN_3_1000000218"));
        if (elements.isEmpty()) {
            throw new RuntimeException("No text area found");
        }
        String value = elements.get(0).getAttribute("title");
        Assert.assertEquals("Raushan Kumar", value);
    }
 

Комментариев нет:

Отправить комментарий

SEO: Эксперимент: как Яндекс и Google учитывают ключевые слова в URL

Эксперимент: как Яндекс и Google учитывают ключевые слова в URL Эксперимент: как Яндекс и Google учитывают ключевые слова в URL Дата пу...