2013-06-24 3 views
2

그래서 나는 이런 종류의 일에 관해서 완전한 멍청한 놈이다. 나는 도움이 필요하다. 전자 상거래 회사의 소프트웨어 QA에서 일하고 있으며 자동화 테스트를 위해 Saucelabs를 사용하기 시작했습니다. 나는 파이썬을 배우는 중이지만, 지금은 아무 것도 모른다. Selenium IDE에서 적절한 테스트를 만들고 Python/Selenium Webdriver로 내보내고 테스트를 실행할 수 있습니다. 별일 아니다. 그러나 인터페이스에서 통과/실패 플래그를 설정하는 방법은 무엇입니까? 우리의 devs 중 하나는 병렬 스크립트를 작성하여 한 번에 많은 수의 테스트를 실행할 수 있지만 이렇게하려면 어느 테스트가 통과했는지, 어떤 테스트가 실패했는지 한 눈에 볼 수 있어야합니다. 너 나 좀 도와 줄 수있어? 감사!Sauce Labs의 자동화 된 테스트를 위해 Python을 사용하여 Pass/Fail을 설정 하시겠습니까?

또한 Selenium Webdriver에서 알고있는 자습서도 유용 할 것입니다. 정말로이 물건을 배우고 싶다!

+1

나는 그것이 대부분의 테스트 프레임 워크의 표준 절차를 다음과 생각했을 것이다 : 예외 또는이없는 경우는 패스입니다 * 명시 적으로 강제로 전달 * 예외가 있거나 명시 적으로 강제로 실패하면 실패합니다. – Arran

답변

0

Sauce labs REST API을 사용하여 테스트 합격/불합격을 표시 할 수 있습니다. 그런 다음

#Config to connect to SauceLabs REST API 
config = {"username": "yourusernamehere", 
      "access-key": "youraccesskeyhere"} 

는 그런 다음 테스트를 넣어이 설정이 필요합니다 먼저 당신은 몇 가지

# These next imports for reporting Test status to Sauce Labs 
import sys 
import httplib 
import base64 

try: 
    import json 
except ImportError: 
    import simplejson as json 

을 가져와야합니다, 나는 이런 식으로했다 here

2

주어진 몇 가지 예제 코드를 찾을 수 있습니다. 마지막에, 당신의 분해하기 전에 그런 다음의 tearDown 당신이 경우 논리의 어떤 종류를 포함 할 필요가

# Curl call to SauceLabs API to report Job Result 
    def set_test_status(self, jobid, passed): 
     base64string = base64.encodestring('%s:%s' % (config['username'], config['access-key']))[:-1] 
     body_content = json.dumps({"passed": passed}) 
     connection = httplib.HTTPConnection("saucelabs.com") 
     connection.request('PUT', '/rest/v1/%s/jobs/%s' % (config['username'], jobid), 
         body_content, 
         headers={"Authorization": "Basic %s" % base64string}) 
     result = connection.getresponse() 
     return result.status == 200 

을 포함해야합니다. 나는 이런 식으로했다 (그리고 그것은 작동) 나를 위해 속임수를 썼는지

def tearDown(self): 
    # sys.exc_info should be (None, None, None) if everything is OK, it fills with some values if something went wrong 
    # This if reports to Sauce Labs the outcome of the Test where True = Pass and False = Failed 
    if sys.exc_info() == (None, None, None): 
     self.set_test_status(self.driver.session_id, True) 
    else: 
     self.set_test_status(self.driver.session_id, False) 
    self.driver.quit() 
    self.assertEqual([], self.verificationErrors)