我正在AzureDevOps web性能测试中测试一个场景。我需要从一个页面的响应中提取所有ID。因为有多个is和提取模式是相同的。如何在一个变量中获得所有in?
如果页面响应如下
[ {"Id":20006,"Period":"13-Jul","Territory":"Chicagoelected":true,
"Link":"/PSR03/0026-03-a/Web/api/Document/Index/20006",
"Username":user1,"Viewer":"user1"},
{"Id":6,"Period":"July2013","Territory":"ChicagoI:false,
"Link":"/PSR03/0026-03-a/Web/api/Document/Index/6",
"Username":"user1","Viewer":"user1"},
{Id:25008,"Period":"13-Jun","Territory":"California",
"Selected":false,
"Link":"/PSR03/0026-03-a/Web/api/Document/Index/25008",
"Username":"user1","Viewer":"user1},
{Id":25007,"Period":"13-Jun","Territory":"EV,Selected":false,
"Link":"/PSR03/0026-03-a/Web/api/Document/Index/25007",
"Username":"user1","Viewer":"user1"},
{Id:25010,"Period":"13-May","Territory":"California","Selected":false,
"Link":"/PSR03/0026-03-a/Web/api/Document/Index/25010",
"Username":"user1","Viewer":"user1},
{Id":25009,"Period":"13-May","Territory":"Chicago","Selected:false,
Link":"/PSR03/0026-03-a/Web/api/Document/Index/25009",
"Username":"user1,Viewer":"user1"},
{"Id":25005,Period:"13-Mar,Territory":"Chicago","Selected":false,
"Link":/PSR03/0026-03-a/Web/api/Document/Index/25005",
Username:"user1","Viewer":"user1"},
{"Id":25006,"Period":"13-Mar","Territory":"EV","Selected":false,
"Link":"/PSR03/0026-03-a/Web/api/Document/Index/25006",
"Username":"user1","Viewer":"user1"},
{"Id":25011,"Period":"13-Feb","Territory":"Chicagoelected":false,
"Link":"/PSR03/0026-03-a/Web/api/Document/Index/25011",
"Username":"user1","Viewer:user1"}],
"LocalizationDictionary":我正在将regex写为- "Id":(0-9*),“句号”它正在工作,并给出了Rubular中的所有Id。但是如何在VSTS web性能测试中实现它呢?
发布于 2014-06-09 11:12:35
正则表达式提取规则可能从数据中获取一个ID,也可能得到整个响应。我不知道如何使用内置的提取规则来获取您需要的数据。
我将编写一个WebTestRequestPlugin,其中PostRequest方法提取和格式化所需的数据。插件本身应该从e.Response.BodyString访问响应体。
提取所需数据并将其格式化为一个变量的方法取决于确切的数据格式,这将由于发问者在评论中所写的信息而变得复杂,即“响应文本被正确地复制,实际上双引号有差异”。可能因为缺少双引号,通常用于解析此类数据的库例程都无法工作。
插件方法的概要可能是:
public override void PostRequest(object sender, PostRequestEventArgs e)
{
string[] body= e.Response.BodyString;
string extractedIds = ...; // Extract and format the IDs from body.
e.WebTest.Context["TheContextParameter"] = extractedIds;
}此Microsoft页面给出了如何编写插件的详细信息。
https://stackoverflow.com/questions/24117990
复制相似问题