• 自动化测试08


    Junit

    为什么学了Selenium还需学习Junit

    Selenium自动化测试框架;Junit单元测试框架。

    拿着一个技术写自动化测试用例(Selenium3)

    拿着一个技术管理已经编写好的测试用例(Junit5)

    Junit相关的技术

    Junit是针对Java的一个单元测试框架

    注解:

    @Test:

    表示当前的这个方法是一个测试用例

    @Disabled

    当前方法被忽略

    @BeforeAll,@AfterAll,@BeforeEach,@AfterEach

    你把什么样的程序放到BeforeAll里面,把什么样的程序放到AfterAll里面?

    初始化放在前面,关闭数据库放在后边。

    如果做UI自动化,通常情况下,创建驱动,打开网页,放到BeforeAll,关闭浏览器放到AfterAll里边。

    1. @Test
    2. public void Test01() {
    3. System.out.println("这是JunitTest里面的Test01");
    4. }
    5. @Test
    6. public void Test02() {
    7. System.out.println("这是JunitTest里面的Test02");
    8. }
    9. @Disabled
    10. public void Test03() {
    11. WebDriver webDriver = new ChromeDriver();
    12. webDriver.get("https://www.baidu.com");
    13. webDriver.findElement(By.cssSelector("#s-top-left > a:nth-child(6)"));
    14. }
    15. @BeforeAll
    16. public static void SetUp() {
    17. System.out.println("这是我们BeforeAll里面的语句");
    18. }
    19. @AfterAll
    20. public static void TearDown() {
    21. System.out.println("这是我们AfterAll的语句");
    22. }
    23. @BeforeEach
    24. public void BeforeEachTest() {
    25. System.out.println("这是BeforeEach里面的语句");
    26. }
    27. @AfterEach
    28. public void AfterEachTest() {
    29. System.out.println("这是AfterEach里面的语句");
    30. }

    如果有5个测试用例,BeforeEach跑几次,BeforeAll跑几次?

    5   1

    如果有5个测试用例,AfterEach跑几次,AfterAll跑几次?

    5   1

    BeforeAll在所有的测试用例运行之前跑响应的方法

    BeforeEach在每一个测试用例执行之前跑对应的方法

    AfterAll在所有的测试用例运行之后跑响应的方法

    AfterEach在每一个测试用例执行之后跑对应的方法


    参数化:

    单参数

    1. @ParameterizedTest
    2. @ValueSource(ints = {1,2,3})
    3. void Test04(int num) {
    4. System.out.println(num);
    5. }
    6. @ParameterizedTest
    7. @ValueSource(strings = {"1","2","3"})
    8. void Test05(String number) {
    9. System.out.println(number);
    10. }

    CSV获取参数

    1. @ParameterizedTest
    2. @CsvFileSource(resources = "test01.csv")
    3. void Test06(String name) {
    4. System.out.println(name);
    5. }

    方法获取参数

    多参数

    1. public static Stream Generator() {
    2. return Stream.of(Arguments.arguments(1,"张三"),
    3. Arguments.arguments(2,"李四"),
    4. Arguments.arguments(3,"王五")
    5. );
    6. }
    7. @ParameterizedTest
    8. @MethodSource("Generator")
    9. void Test07(int num,String name) {
    10. System.out.println(num + ":" + name);
    11. }
    @Test和@ParameterizedTest不能同时使用 

    不想按默认的顺序的执行+:

    1)@TestMethodOrder(MethodOrderer.OrderAnnotation.class)

       @order(1)   @order(2) ……

    2)随机生成

    @TestMethodOrder(MethodOrderer.Random.class)

    测试套件:

    通过class运行测试用例

    通过包运行测试用例 

    断言

    断言相等

    1. @ParameterizedTest
    2. @ValueSource(ints = {1})
    3. void Test02(int num) {
    4. System.out.println(num);
    5. Assertions.assertEquals(1,num);
    6. }

    断言不相等

    Assertions.assertNotEquals(2,num);

    断言为空

    断言不为空

    构建测试套件

    1、

    1. @Suite
    2. //通过class测试用例运行
    3. @SelectClasses({JunitTest.class,JunitTest03.class})
    4. public class RunSuite {
    5. }

    2、通过建立测试包

    1. @Suite
    2. //通过class测试用例运行
    3. @SelectPackages(value = {"Package01","Package02"})
    4. public class RunSuite {
    5. }
  • 相关阅读:
    transformer系列——detr详解
    nSoftware IPWorks 2022 Java 22.0.8 Crack
    C语言课程设计学生考勤管理系统
    (一)运行环境搭建,centos7系统下载安装
    点云配准(四) 四元数与旋转变换
    文件夹重命名:解决文件夹名称难题,批量将中文翻译成英文
    vulhub中GitLab 任意文件读取漏洞复现(CVE-2016-9086)
    3000+价位投影仪该怎么选?双十一投影仪选购攻略
    G1垃圾回收器在并发场景调优
    【C++】简单理解模板 函数模板 类模板
  • 原文地址:https://blog.csdn.net/m0_67247641/article/details/133956565