Command to stop iteration : Automation Tools

Command to stop iteration

Ranorex Spy, Recorder, and Studio.

Command to stop iteration

Postby Pixi6s » Fri Jul 15, 2011 6:11 pm

Hello,

I have my test cases set to "continue with iteration" because generally the show must go on. I do have one case within the first code module where if it does not find the correct page, than I want the current iteration to end and the next iteration to start.

Is there a programmatic way to ask the iteration to stop in one particular instance?

I have an aside question as well. When I manually stop a run it doesn't bring up the report "so far" I find this annoying. I am in debug mode so I often don't need the entire test case to complete but I'd often like to view the log. Is this possible?

Thanks
Sierra
Pixi6s
 
Posts: 92
Joined: Tue Jun 28, 2011 9:57 pm

Re: Command to stop iteration

Postby slavikf » Fri Jul 15, 2011 6:40 pm

Pixi6s wrote:I have my test cases set to "continue with iteration" because generally the show must go on. I do have one case within the first code module where if it does not find the correct page, than I want the current iteration to end and the next iteration to start.

Is there a programmatic way to ask the iteration to stop in one particular instance?

What language you using? C#? VB?
What operator are you using for iteration?

When I manually stop a run it doesn't bring up the report "so far" I find this annoying. I am in debug mode so I often don't need the entire test case to complete but I'd often like to view the log. Is this possible?

Report is saved as temp file in project folder. You can open it manually
User avatar
slavikf
 
Posts: 102
Joined: Mon Sep 13, 2010 10:07 pm
Location: Toronto, Canada

Re: Command to stop iteration

Postby Pixi6s » Fri Jul 15, 2011 7:06 pm

My bad, I am in Ranorex 3.0.4 and my user code is in C#.

I'm not sure what you mean by operator. I have a SQL data source that it is iterating around...
Thanks
Pixi6s
 
Posts: 92
Joined: Tue Jun 28, 2011 9:57 pm

Re: Command to stop iteration

Postby slavikf » Fri Jul 15, 2011 7:08 pm

Generally, you should use "break" statement.
See details at MSDN
User avatar
slavikf
 
Posts: 102
Joined: Mon Sep 13, 2010 10:07 pm
Location: Toronto, Canada

Re: Command to stop iteration

Postby Pixi6s » Fri Jul 15, 2011 7:23 pm

I did try it but it didn't work because I am not actively using a loop. My testcase has a SQL data source that it is iterating around. Under that testcase I have user code modules and recording modules that it iterates through. I'd like it to continue when a validation fails, but I need it to stop when it can't find the correct product page, or all the validations fail because it's testing the wrong product.

Thanks
Pixi6s
 
Posts: 92
Joined: Tue Jun 28, 2011 9:57 pm

Re: Command to stop iteration

Postby Support Team » Mon Jul 18, 2011 12:31 pm

Hi,

Pixi6s wrote:Is there a programmatic way to ask the iteration to stop in one particular instance?


you can do this by calling Report.Failure(String) within you user code if you know, you are not in the correct product page. Report.Failure will make your iteration stop and by selecting "Continue with iteration" for Error behavior in your Test Case settings the next iteration will be executed.

Regards,
Tobias
Support Team
User avatar
Support Team
Site Admin
 
Posts: 6847
Joined: Fri Jul 07, 2006 5:30 pm
Location: Graz, Austria

Re: Command to stop iteration

Postby Pixi6s » Tue Jul 19, 2011 2:19 pm

I updated my report call from report.log(reportlevel.failure, str, str) to report.failure(str, str) and it did not change the behavior. The test and current iteration still continues. Am I using it wrong?
Code: Select all
           //Determine if correct deal is being tested
           bool bCheckID = CheckDealID(DealID);
           if (bCheckID == false)
           {
              bool bExist = repo.WebDocument.CorpSideBar.RelatedDeal1BuyInfo.Exists();
              if (bExist)
              {
               repo.WebDocument.CorpSideBar.RelatedDeal1Buy.Click();
               bCheckID = CheckDealID(DealID);
               if (bCheckID == false)
               {
                  bExist = repo.WebDocument.CorpSideBar.RelatedDeal2BuyInfo.Exists();
                  if (bExist)
                  {
                     repo.WebDocument.CorpSideBar.RelatedDeal2Buy.Click();
                     bCheckID = CheckDealID(DealID);
                     if (bCheckID == false)
                     {
                          Report.Failure("Correct Deal Cannot be found");
                     }
                  }else{
                     Report.Failure("Auto", "Correct Deal Cannot be found");
                  }
               }
            }else{
                 Report.Failure("Auto", "Correct Deal Cannot be found");
              }
           }
Pixi6s
 
Posts: 92
Joined: Tue Jun 28, 2011 9:57 pm

Re: Command to stop iteration

Postby Support Team » Tue Jul 19, 2011 9:08 pm

Hi,

does your method CheckDealID work correctly?
Do you get the failure message logged within your report?
Basically a failure message makes the test case fail.

Regards,
Tobias
Support Team
User avatar
Support Team
Site Admin
 
Posts: 6847
Joined: Fri Jul 07, 2006 5:30 pm
Location: Graz, Austria

Re: Command to stop iteration

Postby Pixi6s » Wed Jul 20, 2011 7:29 pm

Yes CheckDealID works correctly, it is very simple

Code: Select all
       public static bool CheckDealID(string sExpectedID)
       {
         //Check ID
         string sHref = repo.WebDocument.Corp.BuyButton.Href.ToString();
         string sDealID = Util.Util.ReturnDealIDFromURL(sHref);           
         if (sDealID == sExpectedID)
         {
            return true;
         }else{
            return false;
         }
       }

        public static string ReturnDealIDFromURL(string sUrl)
        {
            int x = sUrl.IndexOf("?id=") + 4;
            return sUrl.Substring(x, sUrl.Length-x);           
        }


Yes I do get the failure message logged into my report. (see attachment)

It doesn't seem to be working in my case. the rest of the code in that usercode executes as well as the next record module starting up.
Attachments
error.JPG
error message in log
error.JPG (51.79 KiB) Viewed 1674 times
Pixi6s
 
Posts: 92
Joined: Tue Jun 28, 2011 9:57 pm

Re: Command to stop iteration

Postby Support Team » Thu Jul 21, 2011 10:26 am

Hi,
Pixi6s wrote:It doesn't seem to be working in my case. the rest of the code in that usercode executes as well as the next record module starting up.

Sorry my colleague mixed something up. Report.Failure() logs a logical failure (e.g. test step failure) message and it doesn't abort the whole iteration. If you want to abort the whole iteration you have to throw a new exception. For example:
throw new RanorexException("text");
But please choose the exception to your abort criteria. If you validate something please use ValidationException() and so on.

Regards,
Peter
Ranorex Team
User avatar
Support Team
Site Admin
 
Posts: 6847
Joined: Fri Jul 07, 2006 5:30 pm
Location: Graz, Austria

Re: Command to stop iteration

Postby Pixi6s » Thu Jul 21, 2011 4:10 pm

Thank you, this call does do what I need. But it doesn't seem to print out my string to the log. Do I need to report out a log string before making this call?

Code: Select all
throw new Ranorex.ValidationException("Correct Deal Cannot be found");
Attachments
exception.JPG
exception.JPG (51.01 KiB) Viewed 1662 times
Pixi6s
 
Posts: 92
Joined: Tue Jun 28, 2011 9:57 pm

Re: Command to stop iteration

Postby Support Team » Thu Jul 21, 2011 4:28 pm

Hi,

This is a bug in our Software and we will fix this with Ranorex 3.0.5.
Meanwhile please log a Report.Info() or Report.Failure() before you throw the exception.

Regards,
Peter
Ranorex Team
User avatar
Support Team
Site Admin
 
Posts: 6847
Joined: Fri Jul 07, 2006 5:30 pm
Location: Graz, Austria

Re: Command to stop iteration

Postby Pixi6s » Fri Jul 22, 2011 5:17 pm

Thanks works well thanks
Pixi6s
 
Posts: 92
Joined: Tue Jun 28, 2011 9:57 pm

Re: Command to stop iteration

Postby Pixi6s » Thu Jul 28, 2011 2:38 pm

Is there a command to stop an iteration that is not a failure? I now have a case where if it's a certain type of product to skip the iteration.

Thanks
Pixi6s
 
Posts: 92
Joined: Tue Jun 28, 2011 9:57 pm

Re: Command to stop iteration

Postby Support Team » Thu Jul 28, 2011 3:01 pm

Pixi6s wrote:Is there a command to stop an iteration that is not a failure?

Sorry but such a functionality is not available. Just delete the iteration from your data-source and ranorex won't executed it.

Regards,
Peter
Ranorex Team
User avatar
Support Team
Site Admin
 
Posts: 6847
Joined: Fri Jul 07, 2006 5:30 pm
Location: Graz, Austria

Next

Return to Automation Tools

Who is online

Users browsing this forum: No registered users and 0 guests