如何从插件读取、更新和替换 Web 测试中的 "String body" 字段?

How do I read, update and replace a "String body" field in a web test from a plugin?

我记录的网络性能测试有几个 "String body" 字段,我需要在 运行 时间从网络测试请求插件中修改它们的内容。

"String body" 字段不能直接从 PreRequestEventArgs 的各个字段和子字段中获得。

如何将 "String body" 字段读出到 string 中,并在修改后写回?

要读出 "String body" 字段,请将请求正文转换为 StringHttpBody,从而使字符串可用。要将其写回,请创建一个新的 StringHttpBody 对象以包含更新后的字符串,然后将其写入请求。

我需要使用插件修改网络性能测试中请求的 "String body" 字段。我可以使用以下代码访问内容:

public override void PreRequest(object sender, PreRequestEventArgs e)
{
    if ( e.Request.Body == null ) { return; }
    StringHttpBody httpBody = e.Request.Body as StringHttpBody;
    if ( httpBody == null ) { return; }
    string body = httpBody.BodyString;

    string updatedBody = UpdateBody(body);

    StringHttpBody newBody = new StringHttpBody();
    newBody.BodyString = updatedBody;
    e.Request.Body = newBody;
}