2012-07-20 1 views
0

NUNIT를 사용하지 않고이 앱을 실행할 수 있기를 바란다. 매 시간마다 실행해야하기 때문이다. 나는 NUNIT과 Selenium의 초보자이며, 이것을 NUNIT을 통해 실행하는 대신 콘솔 앱으로 변환하기 위해 무엇을 할 수 있는지 궁금해하고 있었습니까?NUNIT없이이 셀렌 앱을 작동 시키려면 어떻게해야합니까?

코드는 다음과 같습니다. 도와 주셔서 정말 감사합니다.

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Text; 
using NUnit.Framework; 
using Selenium; 
using System.Threading; 
using System.Data; 
using System.IO; 

namespace LogIn 
{ 
    [TestFixture] 
    public class LogIn 
    { 
     public static ISelenium selenium; 
     private StringBuilder verificationErrors; 

     [SetUp] 
     public void SetupTest() 
     { 
      selenium = new DefaultSelenium("localhost", 4444, "*iexplore", "https://.............aspx"); 
      selenium.Start(); 
      selenium.SetSpeed("900"); 
      selenium.WindowMaximize(); 
      selenium.WindowFocus(); 
      verificationErrors = new StringBuilder(); 
     } 

     [Test] 
     public void Login() 
     { 

      selenium.SetSpeed("900"); 
      selenium.Open("/Login.aspx"); 

      Assert.AreEqual("stuff", selenium.GetTitle()); 

      selenium.Type("id=ctl00_cphBody_objLogin_UserName", "username"); 

      selenium.Type("id=ctl00_cphBody_objLogin_Password", "Pass"); 

      selenium.Click("id=ctl00_cphBody_objLogin_LoginImageButton"); 

      selenium.WaitForPageToLoad("30000"); 

      Assert.AreEqual("labs", selenium.GetTitle()); 


      //i dont understand why do we need this? 
      /* 
      try 
      { 
       Assert.AreEqual("Orders - Drug Testing ", selenium.GetText("link=Orders - Drug Testing ")); 

      } 
      catch (AssertionException e) 
      { 
       Console.WriteLine(e.Message + " " + DateTime.Now); 
      } 
      */ 

      Console.WriteLine("Congrats, you are logined successfully. " + DateTime.Now); 



      selenium.Click("link=Specimen Volume Report - Drugs"); 
      selenium.WaitForPageToLoad("30000"); 
      selenium.Click("id=ctl00_cphBody_dtpFrom"); 
      selenium.Type("id=ctl00_cphBody_dtpFrom", DateTime.Now.ToString("MM/dd/yyyy")); 
      selenium.Type("id=ctl00_cphBody_dtpTo", DateTime.Now.ToString("MM/dd/yyyy")); 
      selenium.Click("id=ctl00_cphBody_btnExport"); 
      selenium.SetSpeed("6000"); 
      Console.WriteLine("Waiting for result complete"); 
      selenium.IsTextPresent("Specimen Volume Report"); 
      selenium.IsTextPresent("Display Specimen Detail"); 

     } 

     [TearDown] 
     public void FullTearDown() 
     { 
      selenium.Stop(); 
     } 

} 

}

답변

1

는 새 콘솔 응용 프로그램을 확인합니다. 셀렌 드라이버를 가져 오십시오 (nuget pkg는 appium을 필수 항목으로로드해야합니다). [Test] 배너가 없으면 정적 보이드 작성을 시작하십시오. 로그를 실행하고 예외를 처리하고 오류를 기록하십시오.

실제로 NUnit은 도움이 아닌 장애가 될 수 있습니다. 사용 여부에 관계없이 장기 기능/스트레스 테스트를 실행하는 데 문제가 있습니다.

가라바시, appium, 오래된 ADB 이상은 메모리 누수가 발생하기 쉽고 빠른 유닛 테스트에만 적합합니다.

UItest 클라우드는 장치 당 6 시간, 테스트 당 30 분, calabash 단계 당 10 분까지 제한을 둡니다. 제 생각에는 그들은 술집을 엄청나게 낮게 설정하고 집안에서 스트레스 검사를하도록 권장합니다.

1

왜 단순히 콘솔 응용 프로그램 (또는 예약 된 작업 또는 무엇이든) 단순히 명령 줄을 통해 NUnit과 테스트를 실행할 수 있나요? (즉, 콜 NUNIT 콘솔 인수로 셀레늄 테스트를 통과 ..)

+0

감사합니다. 그래서 muich 당신이 저에게 어떻게 할 수 있는지 보여줄 수 있습니까? –

1

이것은 나를 위해 작동 셀레늄 webdriver하지 셀레늄 RC를 :

using OpenQA.Selenium; 
using OpenQA.Selenium.IE; 
using OpenQA.Selenium.Support.UI; 

public static IWebDriver WebDriver; 
void Main() 
{ 
    var url = "..."; 
    var capabilitiesInternet = new OpenQA.Selenium.Remote.DesiredCapabilities(); 
    capabilitiesInternet.SetCapability("ignoreProtectedModeSettings", true); 
    IWebDriver driver = new InternetExplorerDriver(Path.GetDirectoryName (Util.CurrentQueryPath)); 

    // Navigate to url 
    driver.Navigate().GoToUrl(url); 

    // Login 
    driver.FindElement(By.Name("login")).SendKeys("..."); 
    driver.FindElement(By.Name("password")).SendKeys("..."); 
    driver.FindElement(By.ClassName("button")).Click(); 
+0

필요한 변경 사항에 대한 설명을 제공해 주시겠습니까? –

+0

가져올 네임 스페이스에 대해 언급하는 것을 잊어 버렸습니다. OpenQA 등을 사용하여 코드 업데이트를 참조하십시오. 나는 셀레늄 RC의 셀레늄 webdriver unstead도 사용하고있다. 나는 당신의 코드가 셀레늄 RC를위한 것이라고 생각한다. RC가 Webdriver보다 오래되었습니다. –

관련 문제