美文网首页
测试技巧与示例

测试技巧与示例

作者: c6c033217522 | 来源:发表于2021-10-22 17:18 被阅读0次

 1 使用Jrebel热更新插件以及XRebel性能分析插件 以达到快速修复的目的

2 使用Junit单元测试 可以模拟整个或局部功能的测试 或者用该功能生成测试样本数据(测试数据可以通过DB编写脚本或者函数生成)

3 接口测试使用终端Curl工具/IDE自带/PostMan测试

4 压力测试使用Jemter进行测试

5 使用medis/charles和消息队列管理工具进行数据问题的捕捉

6 使用IDEA断点和条件断点来进行步骤执行

使用JMeter测试示例:

编写测试脚本并导出到为runable jar 到 JMeter扫描的可执行目录下

public class WebServiceextends AbstractJavaSamplerClient {

public static final LoggerLOGGER = LoggerFactory.getLogger(AbstractJavaSamplerClient.class);

    private SampleResultresult;

    @Override

    public void setupTest(JavaSamplerContext context) {

LOGGER.info(getClass().getName() +" setupTest");

        result =new SampleResult();

    }

@Override

    public ArgumentsgetDefaultParameters() {

        Arguments arguments =new Arguments();

        arguments.addArgument("url", "0");

        arguments.addArgument("storeId", "0");

        arguments.addArgument("amount", "0");

        return arguments;

    }

@Override

    public SampleResultrunTest(JavaSamplerContext context) {

String url = context.getParameter("url");

        String storeId = context.getParameter("storeId");

        String amount = context.getParameter("amount");

        String resultData =null;

        result.setSampleLabel("开始运行");

        //记录测试时间及结果

        result.sampleStart();

        List params =new LinkedList();

        BasicNameValuePair param1 =new BasicNameValuePair("storeId", storeId);

        BasicNameValuePair param2 =new BasicNameValuePair("amount", amount);

        params.add(param1);

        params.add(param2);

        URIBuilder uriBuilder = getUriBuilder(url, params);

        //执行请求

        resultData = executeRequest(uriBuilder, resultData);

        result.setSuccessful(true);

        result.setResponseCode("200");

        result.setResponseCodeOK();

//        result.setRequestHeaders("userId");

        result.setResponseMessage("success");

        result.setContentType("application/json");

        //将数据打印到查看结果树当中

        result.setResponseData(resultData, null);

        result.setDataType(SampleResult.TEXT);

        return result;

    }

/**

* 模拟接口请求

    * @param uriBuilder

    * @param resultData

    * @return

    */

    private StringexecuteRequest(URIBuilder uriBuilder, String resultData) {

CloseableHttpClient httpClient =null;

//        HttpPost httpPost = null;

        HttpGet httpGet =null;

        try {

httpClient = HttpClients.createDefault();

            RequestConfig requestConfig = RequestConfig.custom().setSocketTimeout(20000).setConnectTimeout(20000).build();

            // 根据带参数的URI对象构建GET请求对象

            httpGet =new HttpGet(uriBuilder.build());

            httpGet.setConfig(requestConfig);

//            httpPost = new HttpPost(url);

//            httpPost.setConfig(requestConfig);

//            List ps = new ArrayList();

//            Map params = new HashMap();

//            for (String pKey : params.keySet()) {

//                ps.add(new BasicNameValuePair(pKey, params.get(pKey)));

//            }

//            httpPost.setEntity(new UrlEncodedFormEntity(ps));

            CloseableHttpResponse response = httpClient.execute(httpGet);

            HttpEntity httpEntity = response.getEntity();

            resultData = EntityUtils.toString(httpEntity, "utf-8");

        }catch (ClientProtocolException e) {

e.printStackTrace();

        }catch (IOException e) {

e.printStackTrace();

        }catch (URISyntaxException e) {

e.printStackTrace();

        }finally {

try {

if (httpGet !=null) {

httpGet.releaseConnection();

                }

if (httpClient !=null) {

httpClient.close();

                }

}catch (IOException e) {

e.printStackTrace();

            }

}

return resultData;

    }

private URIBuildergetUriBuilder(String url, List params) {

URIBuilder uriBuilder =new URIBuilder(URI.create(url));

        /*uriBuilder.addParameter("storeId", "11011");

uriBuilder.addParameter("amount", "123456");*/

        uriBuilder.setParameters(params);

        return uriBuilder;

    }

@Override

    public void teardownTest(JavaSamplerContext context) {

LOGGER.info("{} teardownTest", getClass().getName());

    }

相关文章

网友评论

      本文标题:测试技巧与示例

      本文链接:https://www.haomeiwen.com/subject/pochaltx.html