当前位置: 首页 > news >正文

无锡网站建设xinysu网站建设与管理案例教程期末考试

无锡网站建设xinysu,网站建设与管理案例教程期末考试,韩版做哪个网站好,wordpress 用户分组管理本文通过实例来讲解如何通过HttpUnit来对web应用进行测试,尤其是当下Ajax越来越流行的情况下,http request和response交互频繁,里面传输的内容也以Json或者XML为主,用HttpUnit结合JUnit来做测试可以带来很多好处,甚至是在web页面还不存在的情况下,通过模拟http请求,包括模拟上传… 本文通过实例来讲解如何通过HttpUnit来对web应用进行测试,尤其是当下Ajax越来越流行的情况下,http request和response交互频繁,里面传输的内容也以Json或者XML为主,用HttpUnit结合JUnit来做测试可以带来很多好处,甚至是在web页面还不存在的情况下,通过模拟http请求,包括模拟上传文件,就可以用来测试服务端的servlet,action(有httprequest参数)等代码. JAVA实例代码 HTTPStub :包装了HttpUnit提供的一些类,同时在初始化的时候做login验证,WebConversation会维护session的信息. public class HTTPStub { private WebConversation httpConversation; private PostMethodWebRequest httpRequest; public HTTPStub() { httpConversation new WebConversation(); String urlLogin EnvConstant.SERVER_CTXT EnvConstant.SERVER_LOGINURL; GetMethodWebRequest getReq new GetMethodWebRequest(urlLogin); try { httpConversation.getResponse(getReq); } catch (IOException e1) { // TODO Auto-generated catch block e1.printStackTrace(); } catch (SAXException e1) { // TODO Auto-generated catch block e1.printStackTrace(); } } public void initHttpRequest(String url) { httpRequest new PostMethodWebRequest(EnvConstant.SERVER_CTXT url, true); } public void setParameter(String name, String value) { httpRequest.setParameter(name, value); } public void setFile(String Filename) { InputStream inputStream FileUtil.readFromdefaultClspath(Filename); httpRequest.selectFile(dumyfile, dumyfile.csv, inputStream, text/plain); } public WebResponse getHttpResponse() { try { return httpConversation.getResponse(httpRequest); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (SAXException e) { // TODO Auto-generated catch block e.printStackTrace(); } return null; } public String getHttpResponseContents() { try { WebResponse resp httpConversation.getResponse(httpRequest); StringBuffer strbf new StringBuffer(); BufferedReader in new BufferedReader(new InputStreamReader(resp.getInputStream())); String str; while ((str in.readLine()) ! null) { strbf.append(str); } in.close(); return strbf.toString(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (SAXException e) { // TODO Auto-generated catch block e.printStackTrace(); } return null; } } 对inputstream处理的一个util类: public class FileUtil { public static InputStream readFromdefaultClspath(String fileName) { InputStream stream ClassLoader.getSystemResourceAsStream(fileName); return stream; } public static String getContentsFromFile(String fileName) { InputStream stream readFromdefaultClspath(fileName); StringBuffer strbf new StringBuffer(); try { BufferedReader in new BufferedReader(new InputStreamReader(stream)); String str; while ((str in.readLine()) ! null) { strbf.append(str); } in.close(); } catch (IOException e) { e.printStackTrace(); } return strbf.toString(); } } Junit测试类: public class ActionCopyBillTest { private HTTPStub httpStub; Before public void setUp() throws Exception { httpStub new HTTPStub(); } After public void tearDown() throws Exception { } Test public void testPerform() { httpStub.initHttpRequest(FrontController?commandCopyBill); httpStub.setParameter(bm_cb_dtCategory, Copy Bill Request); httpStub.setParameter(bm_cb_SRID, SR0001); httpStub.setParameter(bm_cb_ItemOpt, 2- Custom Itemisation); httpStub.setParameter(bm_cb_BillLanCode, ENG); httpStub.setParameter(bm_cb_LegendPrs, Copy Legend); httpStub.setParameter(bm_cb_BillStruct, Front Page Only); httpStub.setParameter(bm_cb_ItemThd, 1); httpStub.setParameter(bm_cb_BillMedia, Paper Bill); httpStub.setParameter(bm_cb_BillFormat, Blue Bill); httpStub.setFile(testdata/req/CopyBill_1.csv); String respContents httpStub.getHttpResponseContents(); String ritContents FileUtil.getContentsFromFile(testdata/rep/CopyBill_1.rsp); Assert.assertEquals(respContents, ritContents); } } 如果想对response进行验证,可以通过手工从html页面输入数据,提交请求,用工具(如eclipse带有的插件tcp/ip monitor)将response截取下来保存为文件,然后和junit测试的时候的response对比. 另外,返回的response也提供了一系列方法来操作其包含的内容: 1,如返回的是文本,可以通过resp.getText()获取,如果文本是json格式,可以再进一步构造成jsonobject来操作. String respContents resp.getText(); JSONObject json new JSONObject(respContents); System.out.println(json.getInt(total)); JSONArray arr json.getJSONArray(userdata); System.out.println(arr.get(0)); 2,如果返回的是XML(标准结构的html也是合法的XML),可以得到w3c 的document对象,resp.getDOM(); 3,如果返回的是html页面,WebResponse提供了一组类似于Javascript操作html dom的方法. resp.getElementWithID(id) resp.getTables(); ...
http://www.hkea.cn/news/14470979/

相关文章:

  • 文山专业网站建设联系电话网站建设公司哪家好?
  • 做网站的电话号码新浪网站制作
  • 什么专业可以做网站编辑扫码登记小程序怎么做
  • 伊利集团的网站建设水平评价青岛seo推广
  • 上海做网站哪里好商业网站建设心得体会
  • 天津智能网站建设价位wordpress网站打开满
  • 衡水提供网站制作公司报价平湖专业网站制作
  • 耐克网站建设的历程wordpress 侧边栏 固定
  • 网站怎么做支付宝接口如何对网站进行优化
  • 怎么用模板做网站开封网站seo
  • 网站建设方案备案720全景网站怎么做
  • seo网站关键词优化怎么做wordpress建什么站
  • 旅游类网站建设方案服务网络营销的含义
  • 视频网站怎样做网站百度指数
  • 网站优化连云港哪家强?购物商城项目
  • 分类网站开发微信公众平台官方网
  • 青岛seo网站管理.net开发网站的优点
  • 厦门建设银行网站首页张家港网站制作
  • 网站开发服务器微网站设计制作
  • 重庆网站建设公司的网站吉恩聊城网站建设
  • 网站程序0day优秀高端网站建设企业
  • 网站被挂马 301建设网站需求
  • 自己怎么设置会员网站做骑兵电影网站赚钱
  • 南宁网站制作价格企业网站策划大纲模板
  • 做网站站长一年能赚多少钱怎样做简单的网站
  • vip影视网站怎么做的手机微网站建设多少钱
  • 外贸网站的公司介绍亿网互联科技有限公司
  • 东莞网站建设管理上海快速建设网站公司
  • 云南科技公司网站保健品企业网站
  • 申请关闭网站论坛网站开发平台