k_kkky 2019-04-25 20:23 采纳率: 0%
浏览 1154

jmeter 两个请求参数传递,接口接收的是数组,这个参数来源于第一个接口的返回值

接口1:
图片说明

需要把返回的列表 用到第二个接口的参数里面,第二个接口接收的是数组
接口二:
图片说明

我的处理是在用接送JSON提取器,把第一个接口通过$.result提取出来保存为:AAA(是个列表),然后后传入到第二个接口 ,进行请求时,响应结果是:缺少数组两个参数:
{"err_code":10101,"result":"The data.add field must be present. The data.remove field must be present. "}

请问这个应该怎么传参数,谢谢

  • 写回答

1条回答 默认 最新

  • 你知我知皆知 2024-08-09 03:51
    关注

    以下回答参考 皆我百晓生券券喵儿 等免费微信小程序相关内容作答,并由本人整理回复。

    要解决这个问题,你需要修改你的JMeter测试脚本以在接收到包含两个参数的响应时将它们作为数组。这里是一个可能的解决方案。

    首先,在接收到包含两个参数的响应时,你可以检查响应是否包含这两个参数,并根据实际情况决定如何处理。例如,如果它们都在同一个对象中,则可以简单地提取它们并将其添加到数组中;如果不在同一对象中,那么你可能需要进一步处理这些数据,例如将其从响应中分离出来。

    以下是一个示例脚本,它将检查响应中的两个参数是否存在,并尝试将其添加到一个数组中:

    import org.jfree.ui.RefineryUtilities;
    import org.jfree.ui.RectangleInsets;
    import org.jfree.util.Log;
    import org.xml.sax.ContentHandler;
    
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    import java.io.IOException;
    import java.io.PrintWriter;
    import java.util.Arrays;
    import java.util.List;
    
    public class MyServlet extends HttpServlet {
    
        public void doPost(HttpServletRequest request, HttpServletResponse response) throws IOException {
            try (PrintWriter out = response.getWriter()) {
                // Get the two parameters from the response
                String param1 = request.getParameter("param1");
                String param2 = request.getParameter("param2");
    
                // Check if both parameters are present in the response
                if (param1 != null && param2 != null) {
                    // Create an array to store the two parameters
                    Object[] paramsArray = new Object[2];
    
                    // Add the first parameter to the array
                    paramsArray[0] = param1;
    
                    // Add the second parameter to the array
                    paramsArray[1] = param2;
    
                    // Set the parameters as a JSON string and send it back to the client
                    out.print(RefineryUtilities.toJson(paramsArray));
                } else {
                    // If either of the parameters is not present in the response,
                    // send an error message instead
                    out.println("{\"err_code\":10101,\"result\":\"The data.add field must be present. The data.remove field must be present.\"}");
                }
            }
        }
    }
    

    在这个例子中,我们首先检查响应中是否有param1param2参数。如果有,我们就创建一个包含这两个参数的新数组,并设置这个数组作为JSON字符串来发送给客户端。如果没有,我们就直接发送一个错误的消息。

    请注意,这只是一个简单的示例,实际的实现可能会更复杂,具体取决于你的需求和环境。例如,你可能需要处理不同类型的参数,或者在处理参数之前对其进行格式化或验证等操作。

    评论

报告相同问题?