获取的Sauce Labs Session ID与实际不符导致报告链接404问题求助
获取的Sauce Labs Session ID与实际不符导致报告链接404问题求助
我现在碰到个头疼的问题:测试结束后想把Sauce Labs的测试报告链接发到Telegram,方便直接点击查看,但获取到的session_id和后台实际的完全不一样,生成的链接打开还会返回404错误。
我单独跑了一个测试来尝试获取真实的session_id,代码如下:
def test_sauce_link(self): main_page_1 = MainPage(self.driver) session_id = self.driver.session_id clean_session_id = re.sub(r"-", "", session_id) report_url = f"https://app.eu-central-1.saucelabs.com/tests/{clean_session_id}" TelegramReport.send_tg(f"{report_url}")
从运行日志里看到,发去Telegram的链接是:
https://app.eu-central-1.saucelabs.com/tests/c0ae13588ae14629bb18b2e237e42ebe
但Sauce Labs后台显示的实际报告链接却是:
https://app.eu-central-1.saucelabs.com/tests/50f2c409f87c471b973a24ed389562d2
这两个ID完全不匹配,测试生成的链接根本打不开,直接报404。
到底哪里出错了?求各位帮忙排查一下!
我的Base测试类及配置代码如下:
class BaseTest(unittest.TestCase): SAUCE_URL = "https://ondemand.eu-central-1.saucelabs.com:443/wd/hub" def setUp(self): """Set up Appium driver for each test case""" platform = os.getenv("TEST_PLATFORM", "android").lower() app_filename = "" if not app_filename: raise ValueError("TEST_APP_FILENAME not provided!") if platform == "android": caps = UiAutomator2Options() caps.set_capability("platformName", "Android") caps.set_capability("appium:platformVersion", "15") caps.set_capability("appium:deviceName", "Google Pixel 9") caps.set_capability("appium:automationName", "UiAutomator2") caps.set_capability("appium:app", f"storage:filename={app_filename}") caps.set_capability("autoGrantPermissions", True) caps.set_capability("hideKeyboard", True) caps.set_capability("autoHideKeyboard", True) else: raise ValueError(f"Unsupported platform: {platform}") # Sauce Labs options sauce_options = { "username": os.getenv("SAUCE_USERNAME", "USERNAME"), "accessKey": os.getenv("SAUCE_ACCESS_KEY", "SAUCE_ACCESS_KEY"), "build": f"appium-build-{platform.upper()}", "name": self.__class__.__name__, "deviceOrientation": "PORTRAIT", "appiumVersion": "2.0.0" } caps.set_capability("sauce:options", sauce_options) self.driver = webdriver.Remote(self.SAUCE_URL, options=caps) self.wait = WebDriverWait(self.driver, 10) def tearDown(self): """Close driver and update job status in Sauce Labs""" if hasattr(self, "driver") and self.driver: job_status = "passed" if sys.exc_info()[0] is None else "failed" try: self.driver.execute_script(f"sauce:job-result={job_status}") except Exception as e: print(f"Failed to update Sauce Labs job status: {e}") try: self.driver.quit() except Exception as e: print(f"Failed to quit the driver: {e}")
备注:内容来源于stack exchange,提问作者Z T M N
相关产品推荐
相关产品推荐

