如何使用HttpUnit进行上传文件测试

简介:
例子代码
String sip_appkey = "test_app003";// app_id
  String sip_apiname = "alitest.ali-001-upload";
  String sip_appsecret = "secret_app003";
  String sessionid = "sddddeee";
  String url = prepareUrl(sip_appkey, sip_apiname, sip_appsecret,
    api_server, sessionid);
  WebConversation conversation = new WebConversation();
  //if use src_url,code will jump SIP
  PostMethodWebRequest request = new PostMethodWebRequest(url);
  
  request.setMimeEncoded(true);
  File f=new File(filein_path);
  UploadFileSpec[] ufs = {new UploadFileSpec(f,"image/gif")}; 
  request.setParameter("image[file]", ufs);
    
  WebResponse resp = conversation.getResponse(request);
     System.out.printf("%s\n", resp.getText());
    
    try{
     byte[] buf = new byte[1024];
     OutputStream bufferOut = new BufferedOutputStream(new FileOutputStream(fileout_path));
     InputStream respis = resp.getInputStream();
        int numRead = 0;
        do {
          numRead = respis.read(buf, 0, buf.length);
          if (numRead > 0) {
           bufferOut.write(buf, 0, numRead);
          }
        } while (numRead >= 0);
     bufferOut.flush();
     bufferOut.close();
     System.out.printf("Src file's MD5 is %s\nRecevied file's MD5 is %s\n.",getHash(filein_path,"MD5"),getHash(fileout_path,"MD5"));
     //uoload will fail when SIP limit 0KB
     switch(assertequal){
      case 0:assertTrue(!getHash(filein_path,"MD5").equals(getHash(fileout_path,"MD5")));break;
      case 1:assertTrue(getHash(filein_path,"MD5").equals(getHash(fileout_path,"MD5")));break;
      default :break;
     }
    }
    catch(IOException e){System.out.printf("%s",e.getMessage());}
 
关键特性:在上传的时候需要设置如下代码
  request.setMimeEncoded(true);
 

本文转自elbertchen 51CTO博客,原文链接:http://blog.51cto.com/linkyou/282634,如需转载请自行联系原作者
相关文章
|
7天前
|
Java 测试技术 API
《手把手教你》系列技巧篇(五十五)-java+ selenium自动化测试-上传文件-下篇(详细教程)
【5月更文挑战第19天】本文介绍了在Web自动化中处理文件上传的挑战,由于Selenium WebDriver不直接支持文件上传,因此需要借助外部工具。文章提到了两种主要的上传方式:基于input框的上传和非input控件的上传。对于非input控件的上传,推荐使用AutoIt,这是一个支持Windows GUI自动化的工具。
38 9
|
8天前
|
Web App开发 机器人 Java
《手把手教你》系列技巧篇(五十四)-java+ selenium自动化测试-上传文件-中篇(详细教程)
【5月更文挑战第18天】本文介绍了在Web自动化测试中处理文件上传的几种方法,特别是针对非`input`控件上传的场景。由于Selenium WebDriver无法操作系统级窗口,因此不能直接支持文件上传。作者提到了四种解决策略:AutoIT、Python的pywin32库、SendKeys库和keybd_event。文章以Java为例,详细阐述了使用Robot类模拟键盘操作来实现非`input`控件的文件上传,包括代码示例和实际项目中的应用。最后,作者分享了一个使用Python和Robot类处理百度图片搜索上传图片的实战案例,并指出有时Chrome浏览器可能需要特定条件才能成功模拟上传。
15 2
|
7月前
|
前端开发 Java Spring
RuoYi-Vue 在Swagger和Postman中 上传文件测试方案
RuoYi-Vue 在Swagger和Postman中 上传文件测试方案
119 0
|
Java 开发者 Spring
FastDFS 测试-上传文件的测试| 学习笔记
快速学习 FastDFS 测试-上传文件的测试。
292 0
FastDFS 测试-上传文件的测试| 学习笔记
|
6天前
|
Web App开发 测试技术 API
自动化测试工具Selenium的深度解析
【5月更文挑战第27天】本文旨在深入剖析自动化测试工具Selenium,探讨其架构、原理及应用。通过对其核心组件、运行机制及在实际项目中的应用案例进行详细解读,以期为软件测试人员提供全面、深入的理解与实践指导。
|
1天前
|
运维 安全 网络架构
【计算巢】网络模拟工具:设计与测试网络架构的有效方法
【6月更文挑战第1天】成为网络世界的超级英雄,利用网络模拟工具解决复杂架构难题!此工具提供安全的虚拟环境,允许自由设计和测试网络拓扑,进行性能挑战和压力测试。简单示例代码展示了创建网络拓扑的便捷性,它是网络设计和故障排查的“魔法棒”。无论新手还是专家,都能借助它探索网络的无限可能,开启精彩冒险!快行动起来,你会发现网络世界前所未有的乐趣!
【计算巢】网络模拟工具:设计与测试网络架构的有效方法
|
3天前
|
jenkins 测试技术 持续交付
软件测试中的自动化测试工具及其应用
传统的软件测试流程需要大量的人工投入,其效率低下且容易出现遗漏。而自动化测试工具的出现极大地提高了软件测试的效率和精度。本文将介绍几种常见的自动化测试工具及其应用,分析其优势和不足,并探讨在实际项目中的应用场景。
|
3天前
|
机器人 测试技术 API
软件测试中的自动化工具与策略
在当今快节奏的软件开发环境中,软件测试是确保产品质量的关键步骤之一。本文探讨了软件测试中的自动化工具和策略,介绍了常用的自动化测试工具,并探讨了自动化测试在提高效率、减少成本和增强测试覆盖率方面的优势。同时,还讨论了如何选择适合项目需求的自动化测试策略,并提供了一些建议和最佳实践。
9 0
|
4天前
|
消息中间件 监控 固态存储
性能工具之 Kafka 快速 BenchMark 测试示例
【5月更文挑战第24天】性能工具之 Kafka 快速 BenchMark 测试示例
14 1
性能工具之 Kafka 快速 BenchMark 测试示例
|
5天前
|
JSON 数据管理 测试技术
自动化测试工具Selenium Grid的深度应用分析深入理解操作系统的内存管理
【5月更文挑战第28天】随着互联网技术的飞速发展,软件测试工作日益复杂化,传统的手工测试已无法满足快速迭代的需求。自动化测试工具Selenium Grid因其分布式执行特性而受到广泛关注。本文旨在深入剖析Selenium Grid的工作原理、配置方法及其在复杂测试场景中的应用优势,为测试工程师提供高效测试解决方案的参考。