3

我正在开发一个将Allure 框架与 Java、TestNG 和 Maven 结合使用的项目。但是在我的 Java 程序中使用 Allure @Step 和 @Attachment 注释时,我无法生成正确的 XML 文件。任何演示上述注释用法的示例代码都值得赞赏。我正在使用 Allure 1.4.0.RC8。

4

2 回答 2

7

这些注解以与任何基于 Java 的测试框架相同的方式使用。

要创建一个步骤:

  • 使用步骤逻辑创建具有任何可见性修饰符(公共、私有、受保护)的方法,并使用 @Step 注释对其进行注释。您可以选择在注释属性中指定步骤名称。
  • 在测试方法中调用此方法。

一个例子:

@Test
public void someTest() throws Exception {
    //Some code...
    stepLogic();
    //Some more assertions...
}

@Step("This is step 1")
private void step1Logic() {
    // Step1 implementation
} 

@Step("This is step 2")
private void step2Logic() {
    // Step2 implementation
}

要创建附件:

  • 创建具有返回byte[]的任何可见性的方法- 附件内容并使用@Attachment注释对其进行注释。
  • 在任何测试中调用此方法

例子:

@Test
public void someTest() throws Exception {
    //Some code...
    createAttachment();
    //Some more assertions...
}

@Attachment(name = "My cool attachment")
private byte[] createAttachment() {
    String content = "attachmentContent";
    return content.getBytes();
} 

为了使@Step@Attachment注释起作用,您需要在配置中正确启用AspectJ。这通常通过指向aspectj-weaver.jar文件的-javaagent JVM 参数来完成。

进一步阅读:

于 2014-08-07T10:45:40.873 回答
0

您还可以为@Step注释使用参数。例如,如果方法接受一些变量:

@Step("Get the maximum between {a} and {b}")
public int max(int a, int b){
    //implementation
}

如果你需要使用任何对象,你可以重写toString()方法,或者使用需要的参数:

public class User {

     private String name;
     private String password;
     ...
}

@Step("Type {user.name} / {user.password}.")
public void loginWith(User user) {
     ...
}
于 2021-06-24T07:34:06.123 回答