2015-01-22 8 views
0

Я пытаюсь проверить, соответствуют ли ответы моего регулярного выражения в моем JSON. Для этого я сохранил ответ регулярного выражения в переменную мета. Теперь мне нужно просмотреть эту переменную, чтобы сравнить ее со всеми значениями metas, и я не понимаю, как это записать. \ "$ {metas (\" $ {nbr_metas} \ ")} \", похоже, не работает.Просмотр в атрибуте Session

здесь, как я делаю:

val scn_get_content = scenario("Test") 
    .exec(http("get metas") 
    .get(url+"/"+json_file) 
    .check(status.is(200)) 
    .check(regex("\"([^\"]*)\":").findAll.saveAs("metas"))) 
    .pause(1) 

    .repeat("${metas.size()}", "nbr_metas") {   
    exec(http("Get JSON") 
    .get(url_json) 
    .headers(headers_1) 
    .check(status.is(200)) 
    .check(responseTimeInMillis.lessThan(1000)) 
    .check(jsonPath("$.\"${metas(\"${nbr_metas}\")}\".findAll").exists)) 

Благодаря

ответ

1

Я еще сталкивался с той же проблемой и, наконец, нашел решение.

.foreach("${url}", "session_url", "counter")(
    exec(http("url") 
    .get("${url(counter)}") 
    .headers(headers_1) 
    .check(status.is(200)) 
    )) 

в моем примере URL является атрибутом сеанса и счетчик счетчик ...

надеюсь, что это поможет некоторым людям!

+1

Для такого простого варианта использования вам лучше использовать foreach! http://gatling.io/docs/2.1.4/general/scenario.html#foreach –

+0

действительно, кажется, лучше. благодаря! – ALS

0

Для проверки на JSON документов, то лучше использовать JsonPath checks.

+0

Прежде всего, спасибо, что ответ. в первой части я использую regex, потому что мне нужны ключи, а не значение в моем JSON, во второй части я использую jsonpath. Но я не знаю, как это записать ... .check (jsonPath ("$. \" $ {Metas (\ "$ {nbr_metas} \")} \ ". FindAll") существует)) у вас есть любой ключ? – ALS