You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

获取的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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.13 19:43:05