博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
http接口测试—参数化
阅读量:7199 次
发布时间:2019-06-29

本文共 5159 字,大约阅读时间需要 17 分钟。

hot3.png

1、传入参数对象化

public class Param {		String no;//编号	String name;//姓名	String age;//年龄	String sex;//性别	String expResu;//期望结果	String actResu;//实际结果	String pass;//是否通过	String desc;//描述	.......}

2、使用Excel储存数据,表格如下

151214_UBcm_1391889.png

3、用poi读取和写入数据,这里我们封装一个ExcelUtil类,代码如下

public class ExcelUtil {		//读取Excel中数据	public static List read() throws Exception{		 HSSFWorkbook wb = new HSSFWorkbook();		 HSSFSheet s = wb.createSheet();		 HSSFRow row = s.createRow(0);		 HSSFCell cell = row.createCell((int)0,0);		 //------------从xls读出数据		 wb = new HSSFWorkbook(new FileInputStream("D:\\learn\\test.xls"));		 s = wb.getSheetAt(0);		 		 //获得EXCEL行数		 int rowNums=s.getLastRowNum();		 //获得Excell列数		 //int columnNum=r.getPhysicalNumberOfCells();		 		 List params=new ArrayList();		 for(int i=1;i<=rowNums;i++){			 HSSFRow r = s.getRow(i);			 cell=r.getCell(0);			 Param param= new Param();			 param.setNo(r.getCell(0).getStringCellValue());			 param.setName(r.getCell(1).getStringCellValue());			 param.setAge(r.getCell(2).getStringCellValue());			 param.setSex(r.getCell(3).getStringCellValue());			 param.setExpResu(r.getCell(4).getStringCellValue());//			 System.out.println(cell.getRichStringCellValue());			 params.add(param);		 }		 return params;	}	/**	  * 写入Excel,在任意坐标处写入数据。	  * String value:你要输入的内容	  * int x :行坐标,Excel从 0 算起	  * int y   :列坐标,Excel从 0 算起	  */		public static void writeCell(String filePath,int x,int y,String value) {			try {				// 创建Excel的工作书册 Workbook,对应到一个excel文档				HSSFWorkbook wb = new HSSFWorkbook(new FileInputStream(filePath));				HSSFSheet sheet=wb.getSheetAt(0);				HSSFRow row=sheet.getRow(x);				HSSFCell cell=row.getCell((short) y);				cell.setCellValue(value);				FileOutputStream os;				os = new FileOutputStream(filePath);				wb.write(os);				os.close();			} catch (Exception e) {				e.printStackTrace();			}		}}

4、客户端代码如下:

public class TestClient {		public static void main(String[]agrs){		TestClient a=new TestClient();		try {			a.client();		} catch (Exception e) {			// TODO Auto-generated catch block			e.printStackTrace();		}	}	public void client() throws Exception{				List params = ExcelUtil.read();		for(Param pa:params){			try {				// 接报文的地址				String param= new JsonsUtil().BuildJson(pa);				URL serverUrl= new URL("http://localhost:8090/lctest/TestServer");							URLConnection uct= serverUrl.openConnection();				HttpURLConnection hutc=(HttpURLConnection)uct;								// 设置报文参数				hutc.setRequestMethod("POST");								// 设置是否向httpUrlConnection输出,因为这个是post请求,参数要放在 http正文内,因此需要设为true, 默认情况下是false; 				hutc.setDoOutput(true);								// 设置是否从httpUrlConnection读入,默认情况下是true				hutc.setDoInput(true);	//				hutc.setAllowUserInteraction(true);								// 开启流,写入数据data				OutputStream out=hutc.getOutputStream();								out.write(param.getBytes("UTF-8"));				out.flush();				out.close();								// 获取返回的数据					StringBuffer buffer=new StringBuffer();				BufferedReader reader = null;				InputStream ins=hutc.getInputStream();				reader = new BufferedReader(new InputStreamReader(ins,"UTF-8"));				String sg=reader.readLine();				if (sg!= null){			           buffer.append(sg);			     }			        System.out.println("接收返回值:" + buffer);				} catch (Exception e) {				// TODO Auto-generated catch block				e.printStackTrace();			}		}				}}

5、服务端代码如下:

public class TestServer extends HttpServlet {	private static final long serialVersionUID = 1L;	 private static JSONArray ja;           /**     * @see HttpServlet#HttpServlet()     */    public TestServer() {        super();        // TODO Auto-generated constructor stub    }	/**	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)	 */	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {		// TODO Auto-generated method stub		try {			this.excute(request, response);		} catch (Exception e) {			// TODO Auto-generated catch block			e.printStackTrace();		}	}	/**	 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)	 */	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {		// TODO Auto-generated method stub		try {			this.excute(request, response);		} catch (Exception e) {			// TODO Auto-generated catch block			e.printStackTrace();		}	}		public void excute(HttpServletRequest request,HttpServletResponse response) throws Exception{		request.setCharacterEncoding("utf-8");		response.setCharacterEncoding("UTF-8");		response.setContentType("text/xml");		String method=request.getMethod();		String url=request.getRequestURI();		String param;	       // 获取收到的报文        BufferedReader reader = request.getReader();        String line = "";        line = reader.readLine();        ja=new JsonsTest().ParseJson(line);				StringBuffer resultBuffer=new StringBuffer();		resultBuffer.append("访问方式"+method+"访问成功");		resultBuffer.append("接收到的数据:"+line+"name:     "+ja.getJSONObject(0).getString("name"));		PrintWriter out =response.getWriter();		out.println(resultBuffer.toString());		out.flush();		out.close();			}}

6、客户端调取服务端,运行结果如下:

151812_xhuR_1391889.png

下一步我们就要做接口的自动化测试设计

欢迎大家关注微信公众号与QQ群进行交流

转载于:https://my.oschina.net/hellotest/blog/499527

你可能感兴趣的文章
Kotlin入门(22)适配器的简单优化
查看>>
代码外的任务很精彩 ---Software project survival guide 读书报告
查看>>
Java io流学习总结(二)
查看>>
PHP中的PDO函数库详解
查看>>
C++编程常见错误
查看>>
Converter of C#&VB.NET
查看>>
修改ASPCMS升级扩展功能
查看>>
模拟HTTP请求的返回&shell写cgi
查看>>
《跟任何人都聊得来》读书笔记
查看>>
问题tips
查看>>
QEMU漏洞挖掘
查看>>
ios 下拉刷新 上拉更多
查看>>
数据结构之病毒感染检测问题
查看>>
PHP-Manual的学习----【序言】
查看>>
3、Lambda表达式
查看>>
梦断代码阅读笔记02
查看>>
HDU 4001 To Miss Our Children Time
查看>>
ORACLE表建立自增列
查看>>
PHP----------用curl方式请求接口在同一个项目里面的时候不能请求的情况
查看>>
phpstorm----------phpstorm设置自动更新的ssh信息如何修改--后续增加如何设置自动更新...
查看>>