performance - 在 gatling 性能测试工具中使用 url 编码的有效负载发布请求
问题描述
如何加载测试具有“x-www-form-urlencoded”格式的正文有效负载的 Rest api 发布请求
以下是我的卷曲请求 -
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))
我收到以下错误:- value formParam 不是 io.gatling.http.protocol.HttpProtocolBuilder 的成员
解决方案
错误消息非常不言自明:您没有在协议配置上定义 formParam,而是在 HTTP 请求上定义。
推荐阅读
- python - 如何在主进程中获得信号以启动操作?
- proxy - 通过本地机器代理/隧道访问VPN
- algorithm - 如何找到完成 n 个作业的最少处理器数
- mysql - 如何在不使用预取概念的情况下从 mysql 反向外键获取数据?
- arrays - 将多个单元格的公式形成连接到一个单元格中
- django - pre_save 后保存模型会失败吗?
- teamcity - 是否可以使用不可用的 VCS 根运行 TeamCity 构建?
- pandas - 从 S3 读取时 AWS Lambda 函数出错
- android - 如果我在从 android studio 推送时在 github 中使用正确的凭据登录,为什么会出现访问被拒绝错误
- discord.js - 如何检查消息是否包含表情符号 discord.js