霍格沃兹测试开发

Allure 用法

霍格沃兹测试开发学社

ceshiren.com

Allure 用法

  • 查看官网:https://docs.qameta.io/allure/#_junit_5
  • 源码example:  https://github.com/allure-examples/allure-examples/
  • tree/master/allure-junit5/src/test/java/io/qameta/allure/examples/junit5

Allure 用法

用例名称

import org.junit.jupiter.api.DisplayName;
import org.junit.jupiter.api.Test;

public class AllureDisplayNameTest {
    @Test
    @DisplayName("静态用例名字")
    public void caseTitleTest() {
      assert 1 + 1 == 2;
      assertThat(2, equalTo(2));
    }
}

描述信息

import io.qameta.allure.Allure;
import io.qameta.allure.Description;
import org.junit.jupiter.api.Test;
public class AllureDescriptionTest {

    @Test
    @Description("静态描述信息")
    public void annotationDescriptionTest() {
    }

    @Test
    public void dynamicDescriptionTest() {
        Allure.description("动态描述信息");
    }
}
public class AllureLinkTest {
    @Test
    @Link(name = "静态链接", url = "https://ceshiren.com")
    public void staticLinkTest() {
        assert 1 + 1 == 2;
    }
    @Test
    public void dynamicLinkTest() {
        assert 1 + 1 == 2;
        Allure.link("Dynamic link", "https://ceshiren.com");
    }
}

重要等级

五种级别 :
    BLOCKER("blocker"),  阻塞缺陷(功能未实现,无法下一步)
    CRITICAL("critical"),    严重缺陷(功能点缺失)
    NORMAL("normal"),    一般缺陷(边界情况,格式错误)
    MINOR("minor"),     次要缺陷(界面错误与ui需求不符)
    TRIVIAL("trivial");    轻微缺陷(必须项无提示,或者提示不规范)

重要等级

import io.qameta.allure.Link;
import io.qameta.allure.Severity;
import io.qameta.allure.SeverityLevel;
import org.junit.jupiter.api.Test;

public class AllureSeverityTest {
  ...
    @Test
    @Severity(SeverityLevel.NORMAL)
    public void normalTest() {
        assert 1 + 1 == 2;
    }

    @Test
    @Severity(SeverityLevel.CRITICAL)
    public void criticalTest() {
        assert 1 + 1 == 2;
    }
  ...
}

添加测试类别

@Feature("登录操作")
public class AllureFeatureTest {

    @Test
    @Story("登录成功")
    public void testSomething() throws Exception {
        System.out.println("success-0000");
    }

    @Test
    @Story("登录失败")
    public void testSomething1() throws Exception {
        System.out.println("fail 11111");
    }

}

添加测试步骤

public class AllureStepTest {
    @Test
    public void someTest() throws Exception {
        //Some code...
        Allure.step("步骤1",this::step1Logic);
        Allure.step("步骤2",this::step2Logic);
        assertThat(1,equalTo(1));
        //Some more assertions...
    }
    @Step("This is step 1")
    private void step1Logic() {
        // Step1 implementation
        System.out.println("步骤1");
    }
    @Step("This is step 2")
    private void step2Logic() {
        // Step2 implementation
        System.out.println("步骤2");
    }
}

添加附件

public class AllureAttachmentTest {
    @Test
    public void addattachTest(){
      // 添加文本展示
        Allure.addAttachment("My attachment", "My attachment content");
      // 添加截图展示
        try {
            Allure.addAttachment("add picture", "image/png",new FileInputStream("/Users/juanxu/Documents/图片/专属海报.jpeg"),".jpg");
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        }
    }
}

Allure 总结

  • ⽀持多平台
  • Java语⾔开发的,⽀持多语言 pytest,JaveScript, PHP, ruby 等
  • 可以为dev/qa提供详尽的的测试报告、测试步骤、log、标题、优先级、附件等等
  • 也可以为管理理层提供high level统计报告
  • 可以集成到Jenkins,展示项目的趋势图