Search code examples
javaseleniumtestingautomated-teststestrail

Can i send information to testrail for selenium when my test runs its course


I am trying to send my tests to testrail from selenium but im not using an assert to end the test, i just want it to pass if it runs to completion? Is this possible? Also is there any examples of how this working in the code? I currently have:

public class login_errors extends ConditionsWebDriverFactory {

    public static String TEST_RUN_ID                = "R1713";
    public static String TESTRAIL_USERNAME          = "[email protected]";
    public static String TESTRAIL_PASSWORD          = "Password100";
    public static String RAILS_ENGINE_URL           = "https://testdec.testrail.com/";
    public static final int TEST_CASE_PASSED_STATUS = 1;
    public static final int TEST_CASE_FAILED_STATUS = 5;


    @Test
    public void login_errors() throws IOException, APIException {
        Header header = new Header();
        header.guest_select_login();
        Pages.Login login = new Pages.Login();
        login.login_with_empty_fields();
        login.login_with_invalid_email();
        login.email_or_password_incorrect();
        login.login_open_and_close();
        login_errors.addResultForTestCase("T65013",TEST_CASE_PASSED_STATUS," ");

    }
    public static void addResultForTestCase(String testCaseId, int status,
                                            String error) throws IOException, APIException {

        String testRunId = TEST_RUN_ID;

        APIClient client = new APIClient(RAILS_ENGINE_URL);
        client.setUser(TESTRAIL_USERNAME);
        client.setPassword(TESTRAIL_PASSWORD);
        Map data = new HashMap();
        data.put("status_id", status);
        data.put("comment", "Test Executed - Status updated automatically from Selenium test automation.");
        client.sendPost("add_result_for_case/"+testRunId+"/"+testCaseId+"",data );

    }

}

I am getting a 401 status from this code.


Solution

  • Simply place the addResultForTestCase method at the end of the run. Ensure the Test CASE is used rather than the run id. You are currently using the incorrect ID