如何在testng、selenium测试脚本中获取方法的内部方法名?

kninwzqo  于 2021-07-03  发布在  Java
关注(0)|答案(1)|浏览(291)

@AfterMethod 获取类名 (TC_UI_PRM_N_001) 我只是用 this.getClassName().toString(); 获取方法名称( permitsPageSaveWithEmptyMandatoryFields )
我只是用 result.getMethod().getMethodName().toString(); ```
@AfterMethod(alwaysRun = true)
public void catchExceptions(ITestResult result) {
Calendar calendar = Calendar.getInstance();
SimpleDateFormat formater = new SimpleDateFormat("dd_MM_yyyy_hh_mm_ss");
String className = this.getClassName().toString();
String methodName = result.getMethod().getMethodName().toString();
...
}

如果步骤(内部方法) `searchTextInPage(getTestCaseData(1))` 我怎么知道它的名字 `@AfterMethod` ? 

public class TC_UI_PRM_N_001 extends BaseTestCase {
Login login;
HomePage homePage;
Permits permits;

@Test
public void permitsPageSaveWithEmptyMandatoryFields(){
    login = new Login(getDriver());
    login.verifyCorrectLogin();

    homePage = new HomePage(getDriver());
    homePage.clickMenuItem("Permits");

    permits = new Permits(getDriver());
    permits.addNewCertificate()
            .validate()
            .searchTextInPage(getTestCaseData(1));
}

}

gzszwxb4

gzszwxb41#

程序将正确返回方法名,并显示以下行: (String methodName = result.getMethod().getMethodName().toString();). 您需要检索引发异常的方法中的特定行。一个简单的方法是通过stacktrace找到它。
为了方便地从throwable中检索stacktrace作为字符串,您可以使用以下内容 String stackTrace = ExceptionUtils.getStackTrace(result.getThrowable()); 来自apache commons。然后您将能够在程序中找到引发异常的特定点。

相关问题