Gatling вопрос по созданию кастомного валидатора

scala
api
gatling
Теги: #<Tag:0x00007fedbff7f170> #<Tag:0x00007fedbff7f030> #<Tag:0x00007fedbff7eef0>

(MaximDae) #1

Используем Gatling как инструмент для нагрузочного для функционального тестирования Rest-api, для создания payload используем Play Framework. Интересно или кто-то писал кастомные check и валидаторы?


(Ruslan Semerenko) #2

Так а в чем, собственно, вопрос?


(MaximDae) #3

Вопрос вообщем-то более общий, инересно посмотреть примеры реального использования validator, возможно ли использовать валидатор для проверки например JSON schema cовместно с данными.


(Ruslan Semerenko) #4

Например вот так

object JsonSchemaCheckBuilder {
    def matchesJsonSchema(jsonSchema: SchemaType) = {
      val JsonSchemaExtractor = new Extractor[String, Unit] {
        val name: String = "jsonSchema"
        def arity: String = "match"
        def apply(prepared: String): Validation[Option[Unit]] = {
          val validationResult = SchemaValidator().validate(jsonSchema, Json.parse(prepared))
          validationResult.fold(
            invalid => Failure(invalid.mkString("\n")),
            valid => Success(Some(()))
          )
        }
      }
      new DefaultFindCheckBuilder[HttpCheck, Response, String, Unit](
        StringBodyExtender,
        ResponseBodyStringPreparer,
        JsonSchemaExtractor
      )
    }
  }

http("request")
  .get("/something")
  .check(matchesJsonSchema(schema))