51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

查看: 1831|回复: 1
打印 上一主题 下一主题

一个简单的自动化测试用例

[复制链接]
  • TA的每日心情
    奋斗
    2021-8-16 14:04
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]测试小兵

    跳转到指定楼层
    1#
    发表于 2019-2-18 14:45:25 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
    前言:

           假如你已经确认了XX 项目适合做自动化测试,那么接下来你要做的就是选测试辅助工具了。

      首先要先确认你所测试的产品是桌面程序(C/S)还是web应用(B/S)。

      桌面程序的工具有:QTP、 AutoRunner

      web应用的工具有:QTP、AutoRunner、Robot Framework、watir、selenium

         但如果项目没有明确要求我们用Jubit或者更成熟的TestNG就可以了。




    基本环境的配置

    java环境变量配置:

    用来做自动化测试的框架TestNG要求:
    1. Eclipse plug-in
    复制代码

    Java 1.7+ is required for running the TestNG for Eclipse plugin.

    Eclipse 4.2 and above is required. Eclipse 3.x is NOT supported any more, please update your Eclipse to 4.2 or above.

    You can use either the Eclipse Marketplace or the update site:



    导入和下载方式:

    打开Eclipse Help ->MarketPlace,在搜索框里面输入TestNG搜索,然后安装TestNG插件。打开Eclipse Help ->MarketPlace,在搜索框里面输入TestNG搜索,然后安装TestNG插件。




    测试代码:
    1. <p>
    2. </p><p>import static org.junit.Assert.*;</p><p>
    3. </p><p>import org.testng.annotations.Test;</p><p>import org.testng.annotations.DataProvider;</p><p>import org.testng.annotations.BeforeTest;</p><p>import org.testng.annotations.AfterTest;</p><p>
    4. </p><p>public class NewTest {</p><p>  @Test(dataProvider = "dp")</p><p>  public void f(String n, String s) {</p><p> if (n.equals("a")) {</p><p> System.out.println("第一个参数是"+n+",第二个参数是"+s);</p><p> }</p><p> if (s.equals("李四")) {</p><p> System.out.println("333");</p><p> }</p><p>  }</p><p>
    5. </p><p>  @DataProvider</p><p>  public Object[][] dp() {</p><p>    return new Object[][] {</p><p>      new Object[] {"a", "张三"},</p><p>      new Object[] {"b", "李四"},</p><p>      new Object[] {"c", 333},</p><p>    };</p><p>  }</p><p>  @BeforeTest</p><p>  public void beforeTest() {</p><p> System.out.println("测试用例开始");</p><p>  }</p><p>
    6. </p><p>  @AfterTest</p><p>  public void afterTest() {</p><p> System.out.println("测试用例结束");</p><p>  }</p><p>}</p>
    复制代码

    执行Run As:



    在eclipse端查看日志:



    打开在web端查看信息:



    注解方法:
      @BeforeSuite: 被此注解的方法将在所有测试运行之前运行该方法。
      @AfterSuite: 被此注解的方法将在所有测试运行之后运行该方法。
      @BeforeTest: 被此注解的方法,将在测试运行之前运行。
      @AfterTest: 被此注解的方法,将在测试运行之后运行。
      @BeforeClass: 被此注解的方法,将在当前类的第一个测试方法调用之前运行
      @AfterClass: 被此注解的方法,将在当前类的所有测试方法调用之后运行
      @BeforeMethod: 被此注解的方法,将在每个测试方法调用之前运行
      @AfterMethod: 被此注解的方法,将在每个测试方法调用之后运行。
      @DataProvider: 标志着一个方法,提供数据的一个测试方法。注解的方法必须返回一个Object[] [],其中每个对象[]的测试方法的参数列表中可以分配。该@Test 方法,希望从这个DataProvider的接收数据,需要使用一个dataProvider名称等于这个注解的名字。

    我们的用例执行了“f”这个方法,在执行过程中我们传递了3组数据用来验证是否存在错误。

          new Object[] {"a", "张三"},
          new Object[] {"b", "李四"},
          new Object[] {"c", 333},

    这3组数据在f的方法中依次执行,日志信息提示:
    1. PASSED: f("a", "张三")     成功
    复制代码
    1. PASSED: f("b", "李四")     成功
    2. FAILED: f                       失败


    3. Method: f([Parameter{index=0, type=java.lang.String, declaredAnnotations=[]}, Parameter{index=1, type=java.lang.String, declaredAnnotations=[]}])
    4. Arguments: [(java.lang.String) c,(java.lang.Integer) 333]
    复制代码


    这段信息告诉我们错误的原因:


    并指出方法中第1个参数是String类型,第二个也是String类型

    传递的参数Arguments第一个是String类型值是"c",第二个参数是Integer类型值是333


    一个简单的测试用例基本完成。


    本帖子中包含更多资源

    您需要 登录 才可以下载或查看,没有帐号?(注-册)加入51Testing

    x
    分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
    收藏收藏
    回复

    使用道具 举报

    本版积分规则

    关闭

    站长推荐上一条 /1 下一条

    小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

    GMT+8, 2024-4-26 13:02 , Processed in 0.066438 second(s), 23 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

    快速回复 返回顶部 返回列表