所以,当涉及到这种事情时,我是一个完整的菜鸟,我需要一些帮助。我在电子商务公司的软件QA工作,我们开始使用Saucelabs进行自动化测试。我正在学习python,但此时真的几乎一无所知。我可以在Selenium IDE中构建一个不错的测试,在Python / Selenium Webdriver中导出,然后运行测试。这不是问题。但是,如何在界面上设置通过/失败标志?我们的一个开发人员编写了一个并行脚本,因此我可以同时运行大量测试,但为了做到这一点,我需要能够一目了然地看到哪些测试已通过,哪些已经失败。你能帮助我吗?谢谢!
此外,您在Selenium Webdriver上了解的任何教程也会有所帮助!真的想学这个东西!
答案 0 :(得分:2)
我是这样做的,首先你需要导入一些东西
# 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
然后你需要这个配置
#Config to connect to SauceLabs REST API
config = {"username": "yourusernamehere",
"access-key": "youraccesskeyhere"}
然后你进行测试。最后,在您的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
然后在你的tearDown中你需要包含某种 if 逻辑。我是这样做的(它有效)
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)
这对我有把戏
答案 1 :(得分:0)
您可以使用Sauce labs REST API标记测试通过/失败。您可以找到一些给定here
的示例代码