在Vugen脚本编写中无法获取关联详情的技术求助
解决VUGEN脚本中无法关联动态ID的问题
我来帮你捋捋这个问题!从你贴的HTML代码来看,你应该是想提取openCalenderModal(event,393517)里的393517这个动态ID对吧?这种动态生成的参数是VUGEN性能测试里最常见的关联场景,下面给你两种靠谱的解决方法:
方法一:用VUGEN自动关联快速尝试
VUGEN自带的自动关联工具能帮你识别大部分动态参数,步骤很简单:
- 录制完脚本后,点击工具栏的「Correlate」按钮(或者直接按
Ctrl+F8) - 在弹出的关联规则窗口里,点击「Add」添加自定义规则:
- 把**左边界(Left Boundary)**设为
openCalenderModal(event, - 把**右边界(Right Boundary)**设为
) - 正则表达式可以直接用默认的,或者手动写
openCalenderModal(event,(\d+))来精准匹配数字
- 把**左边界(Left Boundary)**设为
- 点击「Correlate」让工具自动生成关联参数,之后验证脚本运行是否正常
方法二:手动编写关联函数(更可控)
如果自动关联没识别到目标参数,手动写关联是更稳妥的方式,记住关联函数必须放在返回这段HTML的请求之前:
- 先找到脚本中返回你贴的这段HTML的请求(通常是
web_url或者web_submit_data) - 在这个请求前面添加
web_reg_save_param(或者web_reg_save_param_ex,取决于你用的协议版本),示例代码如下:web_reg_save_param("CalenderID", "LB=openCalenderModal(event,", "RB=)", "Ord=1", // 如果页面有多个相同格式的ID,指定取第几个,这里取第一个填1 "Search=Body", // 从响应体里搜索 LAST); - 之后在需要用到这个ID的地方,把硬编码的
393517替换成{CalenderID}就行
进阶:精准匹配指定行的ID
如果页面有多个类似的日历按钮,你需要精准关联AMT New Test Class这一行的ID,可以用更精确的边界匹配,避免误抓其他行的参数:
web_reg_save_param("CalenderID", "LB=AMT New Test Class</td>.*?openCalenderModal(event,", "RB=)", "Ord=1", "Search=Body", "RelFrameId=1", // 如果页面用了框架,记得指定对应的框架ID LAST);
这里的.*?是非贪婪匹配,只会匹配到第一个符合条件的ID,不会跨抓取其他行的内容。
内容的提问来源于stack exchange,提问作者Prateek Naik
相关产品推荐
相关产品推荐

