Jmeter如何在运行时获取Httprequest GET的值

时间:2019-05-10 23:11:40

标签: jmeter

我已经做过很多情况,其中值是从第一个请求的响应中提取并使用正则表达式/ CSS提取器等传递给后续请求的,但是现在我想在GET处提取一个值并将其传递给相同的GET(当i点击我的页面会生成一个随机代码,该代码必须传递给同一页面,该代码对于每次点击都是唯一的。我如何创建变量并存储代码值并通​​过?

如何在运行时从jmeter中的请求中提取GET值并将其作为变量传递。我想在同一请求中将此值作为变量传递 见下面的截图

enter image description here

我用于加密/解密的C#代码如下-

 string handlerPath = HttpUtility.UrlEncode(appPath + "/ReportFileUpload.ashx");

            string cipherText = string.Empty;
            string passPhrase = "!MMFileUploader123";        // can be any string
            string initVector = "2038459710286532"; // must be 16 bytes

            // Before encrypting data, we will append plain text to a random
            // salt value, which will be between 4 and 8 bytes long (implicitly
            // used defaults).
            RijndaelEnhanced cipher = new RijndaelEnhanced(passPhrase, initVector); //, 4, 16, 256, "SHA1", DateTime.Today.ToBinary().ToString());

            cipherText = cipher.Encrypt("?rn=" + repNum + "&uid=" + user.UserId + "&op=" + originPath + "&hp=" + handlerPath + "&p=" + pass + "&domain=" + domain + "&org=" + org + "&entitytype=" + entityType);
            cipherText = HttpUtility.UrlEncode(cipherText);

//解密

///解密代码以获取参数并将其分配给inParams

      string passPhrase = "!MMFileUploader123";
                string initVector = "2038459710286532"; // must be 16 bytes

                RijndaelEnhanced cipher = new RijndaelEnhanced(passPhrase, initVector);
string cipherText = HttpUtility.ParseQueryString(
                                ApplicationDeployment.CurrentDeployment.ActivationUri.Query)["code"];

                            inParams = cipher.Decrypt(cipherText);

2 个答案:

答案 0 :(得分:0)

您需要将预先生成的random code存储在CSV(CSV数据集配置)中,并将其传递给请求。

向开发人员询问生成random code的逻辑,它应该类似于某些md5加密。

答案 1 :(得分:0)

使用JSR223预处理器在请求之前生成随机值,并将该值传递给您的请求。