• 0
  • 0
分享
  • 软件测试:HttpUnit简单介绍和案例应用——软件测试圈
  • quinn 2022-09-15 13:19:05 字数 3309 阅读 2186 收藏 0

一、什么是HttpUnit

HttpUnit是基于JUnit构建的一个开源的测试框架,专门针对Web应用的测试,用于解决使用JUnit框架无法对远程Web内容进行测试的问题。

二、工作原理

HttpUnit通过模拟浏览器的行为,包括提交表单(form)、处理页面框架(frames)、基本的http验证、cookies以及页面跳转(redirects)处理等,进行Web应用程序的测试。通过HttpUnit提供的功能,用户可以方便地与服务器端进行信息的交互,将返回的网页内容作为普通文本、XML Dom对象或者是作为链接、页面框架、图像、表单、表格等的集合进行处理,然后使用Junit框架进行测试,还可以导向一个新的页面,然后进行新的页面的处理,这个功能使测试人员可以处理一组在一个操作链中的页面!

三、特点

对于一般Web测试工具使用记录、回放的功能来说,这些测试工具的缺陷是当页面设计被修改后,这些被记录的行为就不能再重复利用了,每当页面改变一次,就需要重新录制一次才能正常重放。

例如:

如果,页面上有个元素再开始的设计中采用的是单选框,此时这些工具记录的就是你的单项选择动作。一旦设计发生了变化,比如说改成了下拉菜单,这时候,以前录制的测试过程就无效了,必须要重新录制。

而因为HttpUnit关注的是这些控件的内容,而不管页面的表现形式,所以不管表现形式如何变化,都不影响已确定的测试的可重用性。

四、JUnit

环境:Windows11

工具:IntelliJ IDEA 2021.3、Junit、HttpUnit

语言:java

4.1 什么是JUnit?

JUnit是用于编写和运行可重复的自动化测试的开源测试框架, 这样可以保证我们的代码按预期工作。JUnit可广泛用于工业和作为支架(从命令行)或IDE(如Eclipse)内单独的Java程序。

JUnit提供:

1、断言测试预期结果。

2、测试功能共享通用的测试数据。

3、测试套件轻松地组织和运行测试。

4、图形和文本测试运行。

5、JUnit用于测试:

a、整个对象

b、对象的一部分 - 交互的方法或一些方法

c、几个对象之间的互动(交互)

JUnit的特点:

1、JUnit是用于编写和运行测试的开源框架。

2、提供了注释,以确定测试方法。

3、提供断言测试预期结果。

4、提供了测试运行的运行测试。

5、JUnit测试让您可以更快地编写代码,提高质量

6、JUnit是优雅简洁。它是不那么复杂以及不需要花费太多的时间。

7、JUnit测试可以自动运行,检查自己的结果,并提供即时反馈。没有必要通过测试结果报告来手动梳理。

8、JUnit测试可以组织成测试套件包含测试案例,甚至其他测试套件。

9、Junit显示测试进度的,如果测试是没有问题条形是绿色的,测试失败则会变成红色。

4.2环境配置:安装Junit

1.png

2.png

4.3环境配置:下载HttpUnit

下载地址:http://httpunit.sourceforge.net/

3.png

4.png

4.4环境配置:配置HttpUnit

第一步,在idea中创建一个lib目录:

5.png

6.png

7.png

8.png

9.png

第二步,将下载的HttpUnit压缩包解压,把lib中的包和jars中的包全部导入到lib中:

10.png

五、案例!

5.1创建一个servlet(主要代码)

 public void saveToSession(HttpServletRequest request){
        request.getSession().setAttribute("testAttribute",request.getParameter("testparam"));
    }
    public void doPost(HttpServletRequest request,HttpServletResponse response)
        throws ServletException,IOException{
        String username=request.getParameter("username");
        response.getWriter().write(username+":HelloWorld!");
    }
    public boolean authenticate(){
        return true;
    }

5.2在web.xml中配置这个servlet

 <servlet>
        <description>This is the description of my J2EE component</description>
        <display-name>This is the display name of my J2EE component</display-name>
        <servlet-name>HelloWorld</servlet-name>
        <servlet-class>com.testTry.servlet.HelloWorld</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>HelloWorld</servlet-name>
        <url-pattern>/HelloWorld</url-pattern>
    </servlet-mapping>
    <welcome-file-list>
        <welcome-file>index.jsp</welcome-file>
    </welcome-file-list>

5.3启动tomcat服务器,输入姓名贝吉特点击提交

11.png

12.png

5.4创建测试类(主要代码)

  protected void setUp() throws Exception{
        super.setUp();
    }
    protected void tearDown() throws Exception{
        super.tearDown();
try{
            ServletRunner sr=new ServletRunner();
            sr.registerServlet("HelloWorld", HelloWorld.class.getName());
            ServletUnitClient sc=sr.newClient();
            WebRequest request=new GetMethodWebRequest(
                    "http://localhost:8080/HelloWorld"
            );
            request.setParameter("username","Test");
            InvocationContext ic=sc.newInvocation(request);
            HelloWorld is=(HelloWorld) ic.getServlet();
            Assert.assertTrue(is.authenticate());
            WebResponse response=sc.getResponse(request);
            Assert.assertTrue(response.getText().equals("Test:HelloWorld!"));
        }catch(Exception e){
            e.printStackTrace();

5.5运行结果,测试成功

13.png


作者:不许代码码上红

原文链接:https://blog.csdn.net/qq_45801904/article/details/124455853

  • 【留下美好印记】
    赞赏支持
登录 后发表评论
+ 关注

热门文章

    最新讲堂

      • 推荐阅读
      • 换一换
          •   百度文库于 5 月 30 日发布 AI 原生应用“橙篇”,这款 App 今日在各大安卓平台上线,版本号为 1.0.02,安装包体积为 40.72 MB。▲ App 截图  IT 之间获悉,这款产品支持智能全网搜索、AI 今日热点等类似资讯类 App 的功能,还支持多图一键成片、超长文章写作、文件理解总结等生成式大模型功能。此外,该产品具备对话能力,支持发送文字、语音输入等进行自由对话。  今年 6 月,百度文库宣布,新产品“橙篇”行业首创 10 万字长文生成及多模态编辑能力,成为行业首个“查阅创编”一站式 AI 自由创作平台。▲ 官网截图  除了以上功能,橙篇官网还显示智能 PPT、AI ...
            0 0 496
            分享
          • 一、简介移动应用App已经渗透到每个人的生活、娱乐、学习、工作当中,令人激动、兴奋且具有创造性的各种App犹如雨后春笋般交付到用户手中。各类智能终端也在快速发布,而开发者对于全球移动设备的质量和性能却掌握甚少,App与设备的兼容性问题常常导致用户投诉,令开发者十分沮丧,App测试与服务质量保证矛盾十分突出。移动开发的一个重要难题,就是应用在开发过程中,必须使用手机真实环境进行系统测试,才有可能进入商用。由于手机操作系统的不同,以及操作系统版本之间的差异,使得真机系统测试这个过程尤其复杂,涉及终端、人员、工具、时间、管理等方面的问题。首先必须购买足够多的手机,包括不同操作系统,不同版本,不同分辨...
            12 12 3139
            分享
          • 一、前言接口测试最近几年被炒的火热了,越来越多的测试同行意识到接口测试的重要性。接口测试为什么会如此重要呢? 主要是平常的功能点点点,大家水平都一样,是个人都能点,面试时候如果问你平常在公司怎么测试的,你除了说点点点,还能说什么呢,无非就是这个项目点完了点那个项目, 这就是为什么各行各业的只要手指能点得动的人都来转行软件测试了。面试的时候面试官希望你除了点点点,还能更深入一点的思考页面上看不到的功能,也就是接口测试了。接口测试可不是下图的USB接口哈,接口是看不见的,但是可以访问!二、2020非常全的接口测试面试题及参考答案1、你们公司的接口测试流程是怎样的?(有没有感觉熟悉,貌似在哪里听过)...
            13 14 3868
            分享
          •   对每个职场人士来说,当工作步入正轨,开始稳定下来,那么关于未来的职业发展就是首要考虑的问题。测试人员也不例外,每天忙于业务测试,接触到的核心技术会比较少,如果不能提升自己的职业技能,拥有自己的核心竞争力,那么对于未来的发展会有很大的限制。  说的稍微严重一点,如果觉得测试只是枯燥的“用鼠标点点点”的工作,那么职业发展可能很快就会遇到瓶颈,甚至还有被行业淘汰的可能!  每个行业,每个岗位,都有自己的发展方向,测试工程师必有他的价值。有时候觉得看不到未来,也可能只是是自己站的不够高。想要未来大有可为,就需要不断的学习,提升自己的专业技能,让自己达到一定高度,毕竟站的更高,才能看的更远。对此,小...
            0 0 661
            分享
      • 51testing软件测试圈微信