项目要求:模拟100个温湿度设备发送温湿度数据进行压测,查看数据是否有叠加且显示正确,因为测试环境简陋,没有100个温湿度设备,只能通过调用接口模拟发送请求,由于每次发送的请求要求正文某些元素值要唯一,所以通过传参方式,每间隔一秒发送一次请求,发送满四条后间隔10分钟再次发送,写的是死循环,代码如下:
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.net.HttpURLConnection;
import java.net.URL;public class DGStr {static String Tag1="";static String Tag2="";static String Tag3="";static String Tag4="";static int k=0;final static String url = "url地址"; public static void main(String[] args) {for(int j=3;j<80;j++) {if(j>=3&&j<=19) {Tag1=Tag1+"{\"id\":"+j+", \"t\":25.0, \"bat\":3},";continue;}if(j>=21&&j<=39){Tag2=Tag2+"{\"id\":"+j+", \"t\":25.0, \"bat\":3},";continue;}if(j>=41&&j<=59){Tag3=Tag3+"{\"id\":"+j+", \"t\":25.0, \"bat\":3},";continue;}if(j>=61&&j<=79){Tag4=Tag4+"{\"id\":"+j+", \"t\":25.0, \"bat\":3},";continue;}//Tag1=Tag1+"{\"id\":"+j+", \"t\":25.0, \"bat\":3},";}Tag1=Tag1+"{\"id\":20, \"t\":25.0, \"bat\":3}";Tag2=Tag2+"{\"id\":40, \"t\":25.0, \"bat\":3}";Tag3=Tag3+"{\"id\":60, \"t\":25.0, \"bat\":3}";Tag4=Tag4+"{\"id\":80, \"t\":25.0, \"bat\":3}";String[] params= {"{\"lac\":16794,"+ "\"cid\":19531,"+ "\"grp\":1," + "\"nodes\":"+"["+Tag1+"]"+"}","{\"lac\":16794,"+ "\"cid\":19531,"+ "\"grp\":1," + "\"nodes\":"+"["+Tag2+"]"+"}","{\"lac\":16794,"+ "\"cid\":19531,"+ "\"grp\":1," + "\"nodes\":"+"["+Tag3+"]"+"}","{\"lac\":16794,"+ "\"cid\":19531,"+ "\"grp\":1," + "\"nodes\":"+"["+Tag4+"]"+"}"}; try {while(true) { for(k=0;k<4;k++) {post(url, params[k]);Thread.sleep(1000);}Thread.sleep(60000);}}catch(InterruptedException e) {e.printStackTrace();}}public static String post(String strURL, String params) {System.out.println(strURL);System.out.println(params);BufferedReader reader = null;try {URL url = new URL(strURL);// 创建连接HttpURLConnection connection = (HttpURLConnection) url.openConnection();connection.setDoOutput(true);connection.setDoInput(true);connection.setUseCaches(false);connection.setInstanceFollowRedirects(true);connection.setRequestMethod("POST"); // 设置请求方式connection.setRequestProperty("Accept", "application/json"); // 设置接收数据的格式connection.setRequestProperty("Content-Type", "application/json"); // 设置发送数据的格式connection.connect();//一定要用BufferedReader 来接收响应, 使用字节来接收响应的方法是接收不到内容的OutputStreamWriter out = new OutputStreamWriter(connection.getOutputStream(), "UTF-8"); // utf-8编码out.append(params);//System.out.println(params);out.flush();out.close();// 读取响应reader = new BufferedReader(new InputStreamReader(connection.getInputStream(), "UTF-8"));String line;String res = "";while ((line = reader.readLine()) != null) {res += line;}reader.close();return res;} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}return "error"; // 自定义错误信息}}
运行结果: