#performance #gatling
#Производительность #gatling
Вопрос:
Как выполнить нагрузочный тест post-запроса Rest api, содержащего основную полезную нагрузку в формате «x-www-form-urlencoded»
Ниже приведен мой запрос curl —
curl --location --request POST 'https://<dns-test>/master-service/v1'
--header 'business: Test'
--header 'Content-Type: application/x-www-form-urlencoded'
--header 'apiKey: testAPIKEY'
--data-urlencode 'assertion=eyJraWQiOiGHJKJHGHJKJHGHJKJHkhHJHjhghjkhghjklkjhghjkkjhghjkjhghjkjhjkjhLU9BRVAtMjU2In0.g965X6rIIajOC_6t2NIlMnvJzmO50_UdJhUvOwkQwOw8nS8BhqUM0n4jf2lGNFJ7TICNUPmcPUhRmriA7R5W7ZjwLrplrDeyswmjUJAgUAv4ENDHgTdvswxtINuNvAxw99_NF4ccaOJJ6_BATTtTfOB7dmi7yxlFdAgtlWDD_biBbNx0PQ77-vXOTVVcuL5AYLUq6ZHuYFKIGNhFbtzwQjm1GhDvceoGf69THWyDzJKqapiM1LBZtscbvHsM9S78r8VTgdGNqTAaICzJkaigk1BXEGkvbnfghjkjhgfghjkjhgfghjklkjhgfhjklhgfhjklkhgfghjklkjhgjklkjhgklkfjklhgfjklkjhgfhjklkjhgfjklhgfgkl;ghjklhgf7gppdKbtFalcZCkNa52RqIfJO718nNqJvmjx2zgS6VkksekeJ-_znvSC0mx-LtLA4NhNbQJJRYZFUrB4cqXYteeynXEsdhc1TBojN9FmQxxeuRrTcufXNv5qKkOu4FchvDRksx43QOHxyFBq1a6vNyTLy4wYO2gtEHM1fAo8yeoqO-N2ljUjPKlgukWal59lH_W6T-axKc1YnmvRU8VH-FAtsoI283gywghBkhOgy8ZlRRX_NV8nZEBbZmU9iyB9S1I4gnRwcxBWliqs99wVy0i6o77hPynVMqm1HSS3H4FO-JoP3ng1bkQxmGcty43mquqfXXk49HJ2s1PZSjLJHQKDEGnS8qTGjM3_lKKihWIojaxb0Dvu7ktiOXmhLATc6_Op2eO-Bp4Mu4k7eccUM063PYSD3x_G_7idWpa6X7zS6QLtl8t8MF6S76ZQp56ekbe4Ygq8LlC0af-BGlnFxHJZdpAMU2tBhD0uNSKRrmntSy8IOI8dwcCUdAIni9oOI-xLht9-CdvMtAE16XPP7q8NeA7XfkYiOTI5GYzAnMnTjOOWUF-U3WaXx9-GjUIiUboMYjHN7w3LrYIeL_UmRXha07Lm-83Lbi3VGwJRteX7sdMCLXEYFWlfkgthjJyz43DhemrpiPSvI7oKn13itiAd4ThfqJIYVlAYDI29Yix78YrIbleWyK5FQELCcmY6wNJEsfzLs57Ew8PLIk6_kjutHUIyzDpChIUOZ9Xq3Bq_E8G721raHQfPuAnKxx0OjWr6UnuqGwuuwRmHsbrNW8Vht0B4ucBiDP2cjdUmv2alifXU-X3-Pw7T2INscDNbu4bXRD1zV81K4GjQl1aveMJjCgZwu-dtSo8G4ccaHKuvdGquqyShrFR49-NYjC9Sk5UMqXbnDiDDwuJNETLs6frgqEOSqzW6deujaZSEWHhhZi5PdVOPZ7SiBFanahODXw3CpBlzU181fylwpY_-puKhzFe6NSbGwsI1fWUnSFH6SEhBuzn8Vl5jf12Av1BS4BYNl9L2pY_aGdjPbF8QhD9DvPRg22vYmUUIwAYSDQd3HfhTFauxE4Pd8Tc8YQhbj5DmRlll7fbEJGZn_CZoPGNX1aKV-6mHCemUXxebMeytjRI19y4bEGR7m1oflkmvb6LR75aMJfvEkguacKSLYdbQzfnn9Z7jKXSjhc-8z8kBaB0KfUxu26NaOCiaHVMMbl42CxhONHELIMkdP4UFS_9UMCXOMjhu2pnrzVp3H6TIT8bjs3SdLEPh9aCZ1DyXMq5x_-_jG-Bsv3rxH5cB5SI-Fo_aIfOJBn82leQjeVxW72M6yJ8DaHvFTkrWQJ6Mvm_jK4-6ybqQi1FVPCCQhcZhpl_3CHHUkEIag14-5W76s228JPJO0-HE7C1Ac6qjK8x_EU_452ut4HxontfdXdIadDm2_LCShTXEMjwCrOSw4SzxY4RPLc_Z8Ai_1DejZkG0bRYyXJfDeJfr8zK1ht7RvlTPwtio1hipvGGhXZGwGX9xHJek60H0FERaJQRSlVgPC-hfDk5ylvp2XzSX8UTf2KqLR--slLf_9VpTO8DuKlN0itx-WqDWK_G30ra4AocMdjMSOtNH1DIhqPq9Zxw6pRxoVrvtJg8gmRwq2gMN5pDnMY4XrXIfYJQ.DYoUJzMcIi5uD0Hg0y-6qA'
--data-urlencode 'grant_type=urn:ietf:params:oauth:grant-type:jwt-bearer'
--data-urlencode 'scope=testing'```
Following is my code executing the request in Gatling -
val httpProtocol = http
.baseUrl("https://<dns-test>/master-service/v1")
.header("apiKey", "testAPIKEY")
.header("business", "test")
.header("Content-Type", "application/x-www-form-urlencoded")
.formParam("scope", "testing")
.formParam("grant_type", "urn:ietf:params:oauth:grant-type:jwt-bearer")
.formParam("assertion", "eyJraWQiOiJjcnlwdC1rZXloc2dfghjkjhgfdghjklkjhgfghjkjhgnIjoiUlNBLU9BRVAtMjU2In0.g965X6rIIajOC_6t2NIlMnvJzmO50_UdJhUvOwkQwOw8nS8BhqUM0n4jf2lGNFJ7TICNUPmcPUhRmriA7R5W7ZjwLrplrDeyswmjUJAgUAv4ENDHgTdvswxtINuNvAxw99_NF4ccaOJJ6_BATTtTfOB7dmi7yxlFdAgtlWDD_biBbNx0PQ77-vXOTVVhgfdfghjhghjhghjhgijhghijhghikjhg80s174nxHTpzpvsC2S1f4DzefbarzZc-ypuXHxpwoTmi3PLLfmGZrIOTBvSHKhk23x8KFGiWLEJBe2dba1MmE_Lzwg9G5G-5qSHZtlxAbAUIDL6S_JlHqHm4ftd8rEzLRlV4ZmoE_ETeJI3cv1W_NZF31YYW81SM-bYfKlC0x0p0KLaILUjNxTcr_Cp8ydyiALNBjjXnK5IqAoLwlpQHZwh0t7yrmYFACWZRNkJQGXpqFhYO4ih-BJNBRDd5D97In90I3mM1wFP3yezRkSBNFVG7gppdKbtFalcZCkNa52RqIfJO718nNqJvmjx2zgS6VkksekeJ-_znvSC0mx-LtLA4NhNbQJJRYZFUrB4cqXYteeynXEsdhc1TBojN9FmQxxeuRrTcufXNv5qKkOu4FchvDRksx43QOHxyFBq1a6vNyTLy4wYO2gtEHM1fAo8yeoqO-N2ljUjPKlgukWal59lH_W6T-axKc1YnmvRU8VH-FAtsoI283gywghBkhOgy8ZlRRX_NV8nZEBbZmU9iyB9S1I4gnRwcxBWliqs99wVy0i6o77hPynVMqm1ghjjhghjkjhghjkjhjkjkjhLrYIeL_UmRXha07Lm-83Lbi3VGwJRteX7sdMCLXEYFWlfkgthjJyz43DhemrpiPSvI7oKn13itiAd4ThfqJIYVlAYDI29Yix78YrIbleWyK5FQELCcmY6wNJEsfzLs57Ew8PLIk6_kjutHUIyzDpChIUOZ9Xq3Bq_E8G721raHQfPuAnKxx0OjWr6UnuqGwuuwRmHsbrNW8Vht0B4ucBiDP2cjdUmv2alifXU-X3-Pw7T2INscDNbu4bXRD1zV81K4GjQl1aveMJjCgZwu-dtSo8G4ccaHKuvdGquqyShrFR49-NYjC9Sk5UMqXbnDiDDwuJNETLs6frgqEOSqzW6deujaZSEWHhhZi5PdVOPZ7SiBFanahODXw3CpBlzU181fylwpY_-puKhzFe6NSbGwsI1fWUnSFH6SEhBuzn8Vl5jf12Av1BS4BYNl9L2pY_aGdjPbF8QhD9DvPRg22vYmUUIwAYSDQd3HfhTFauxE4Pd8Tc8YQhbj5DmRlll7fbEJGZn_CZoPGNX1aKV-6mHCemUXxebMeytjRI19y4bEGR7m1oflkmvb6LR75aMJfvEkguacKSLYdbQzfnn9Z7jKXSjhc-8z8kBaB0KfUxu26NaOCiaHVMMbl42CxhONHELIMkdP4UFS_9UMCXOMjhu2pnrzVp3H6TIT8bjs3SdLEPh9aCZ1DyXMq5x_-_jG-Bsv3rxH5cB5SI-Fo_aIfOJBn82leQjeVxW72M6yJ8DaHvFTkrWQJ6Mvm_jK4-6ybqQi1FVPCCQhcZhpl_3CHHUkEIag14-5W76s228JPJO0-HE7C1Ac6qjK8x_EU_452ut4HxontfdXdIadDm2_LCShTXEMjwCrOSw4SzxY4RPLc_Z8Ai_1DejZkG0bRYyXJfDeJfr8zK1ht7RvlTPwtio1hipvGGhXZGwGX9xHJek60H0FERaJQRSlVgPC-hfDk5ylvp2XzSX8UTf2KqLR--slLf_9VpTO8DuKlN0itx-WqDWK_G30ra4AocMdjMSOtNH1DIhqPq9Zxw6pRxoVrvtJg8gmRwq2gMN5pDnMY4XrXIfYJQ.DYoUJzMcIi5uD0Hg0y-6qA")
val scn = scenario(" load test")
.exec(
http("PostRequest")
.post("/")
.check(status.in(200))
setUp(scn.inject(atOnceUsers(1)).protocols(httpProtocol))
Я получаю следующую ошибку: —
значение FormParam не является членом io.gatling.http.protocol.HttpProtocolBuilder
Ответ №1:
Сообщение об ошибке говорит само за себя: вы определяете FormParam не в конфигурации протокола, а в HTTP-запросе.