邮差:改变局部变量的值会影响环境变量的值

时间:2018-04-18 09:39:31

标签: javascript postman

我想知道我是否遇到了Postman中的错误,或者这是否是设计错误。

我有一个案例,其中有2个请求:

在请求1中,我捕获了完整的private void TextBox_PreviewKeyDown(object sender, KeyEventArgs e) { char character = GetCharFromKey(e.Key); e.Handled = false; if (character >= '0' && character <= '9') return; if (character == '.') return; switch(e.Key) { case Key.Delete: case Key.Back: return; } e.Handled = true; }

在请求2(responsebody)中,我需要将已捕获的put请求1作为responsebody提供给请求2 ,并且确定的变化很小布尔值。

在其他请求(requestbody)中,我执行与请求2相同的操作。因此,请从捕获的put请求1开始。

因此我使用了以下方法:

请求1 - 测试脚本:

responsebody

请求2 - 请求前脚本:

pm.environment.set("Filter-get_responsebody", pm.response.json());

因此,在请求2的预请求脚本中,我的原始环境变量(var res_body = pm.environment.get("Filter-get_responsebody"); console.log(pm.environment.get("Filter-get_responsebody")); //==>returns the full json response as captured in request 1 res_body.Filters[2].List[0].Checked = true; console.log(pm.environment.get("Filter-get_responsebody")); //==>returns the full json response but already with the updated boolean done in the var res_body res_body.Filters[2].IsChanged=true; console.log(pm.environment.get("Filter-get_responsebody")); //==>returns the full json response but already updated by the 2 changes on var res_body pm.environment.set("ProductList-Put-SelectFirstFuelType-RequestBody",JSON.stringify(res_body)); )获取更新的值,尽管我没有直接更改其值。而是在第一行,我将环境变量值存储到本地脚本变量(Filter-get_responsebody)中。这样做允许我在其他请求中重用请求1的原始响应主体。

所以我的问题是:为什么环境变量在没有直接改变的情况下获得更新的值。这是邮递员脚本引擎中的错误吗?我已经设置了一个虚拟测试,其中我有2个请求使用相同的方法,但我没有使用JSON对象,而是使用字符串值来放置和更新环境变量。在这种情况下,不会覆盖值。但是,在更新JSON时(如上所述),它会直接在环境变量中覆盖该值。

0 个答案:

没有答案