kms工具(2021.7.24更新)

本文分享了一个百度网盘链接,包含特定资源,提取码为oys4,适用于需要该资源的读者。

链接:https://pan.baidu.com/s/1NWW-eIyrD8qJxc_Rt2yspQ 
提取码:oys4

/* * Copyright (c) Huawei Technologies Co., Ltd. 2021-2021. All rights reserved. */ package com.huawei.gts.testcaseapi.service; import com.huawei.adcmate.sdk.project.utils.UnifyDevUserAccessCheckUtil; import com.huawei.gts.adcmate.pipeline.sdk.common.utils.FileCheckUtil; import com.huawei.gts.testcaseapi.bean.entity.Action; import com.huawei.gts.testcaseapi.bean.entity.TestCase; import com.huawei.gts.testcaseapi.bean.vo.CaseFilterVo; import com.huawei.gts.testcaseapi.bean.vo.QueryTestCaseResult; import com.huawei.gts.testcaseapi.bean.vo.TestCaseStepDto; import com.huawei.gts.testcaseapi.bean.vo.TestCaseVo; import com.huawei.gts.testcaseapi.bean.vo.VerificationPoint; import com.huawei.gts.testcaseapi.dao.TestCaseDao; import com.huawei.gts.testcaseapi.service.impl.TestCaseServiceImpl; import com.huawei.gts.testcaseapi.util.FileUtil; import com.huawei.gts.testcaseapi.util.UploadFileUtil; import com.huawei.gts.testcaseapi.util.XmlUtil; import com.huawei.mateinfo.sdk.file.FileServiceManager; import com.huawei.mateinfo.sdk.file.service.FileService; import com.huawei.mateinfo.sdk.security.file.util.ZipUtils; import com.huawei.security.upload.CommonsMultipartFile; import com.huawei.us.common.xml.UsXmlUtils; import com.huawei.us.kms.sdk.KmsSdkTool; import org.apache.commons.fileupload2.core.FileUploadException; import org.dom4j.io.SAXReader; import org.junit.Assert; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; import org.junit.runner.RunWith; import org.mockito.Mock; import org.mockito.Mockito; import java.io.File; import java.io.IOException; import java.nio.charset.StandardCharsets; import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; import java.util.List; import static org.junit.Assert.assertEquals; /** * 测试用例TestCaseService测试类 * * @since 2021-10-30 */ public class TestCaseServiceTest { @Mock private TestCaseDao testCaseDao; private TestCaseService testCaseService; private String xml; private TestCase testCase; /** * 预处理 * * @throws IOException FileUtil抛出异常 */ @BeforeEach public void init() throws IOException { testCaseDao = Mockito.mock(TestCaseDao.class); testCaseService = new TestCaseServiceImpl(testCaseDao); Mockito.mockStatic(UnifyDevUserAccessCheckUtil.class); Mockito.mockStatic(UsXmlUtils.class); Mockito.when(UsXmlUtils.getSecurityXmlTool(SAXReader.class)).thenReturn(new SAXReader()); Mockito.mockStatic(UploadFileUtil.class); xml = FileUtil.readFile("src/test/resources/playbackScript.xml".replaceAll("//", File.separator)); testCase = TestCase.createTestCase("", "AAA", "TEST", xml.getBytes(StandardCharsets.UTF_8), "pub_MateProxy"); } /** * 测试用例描述:测试上传用例的场景 * 预置条件:调用testCaseDao.queryByTenantIdAndProjectNameAndCaseName返回null * 调用testCaseDao.saveAndFlush返回testCase * 操作步骤:调用testCaseService.uploadTestCase * 预期结果:返回testCase * * @throws IOException IOException * @throws FileUploadException FileUploadException */ @Test public void testUploadTestCase() throws IOException, FileUploadException { Mockito.when(testCaseDao.queryByTenantIdAndProjectNameAndCaseName("", "AAA", "TEST")).thenReturn(null); Mockito.when(testCaseDao.saveAndFlush(Mockito.any())).thenReturn(testCase); Mockito.mockStatic(ZipUtils.class); Mockito.mockStatic(FileUtil.class); Mockito.mockStatic(FileCheckUtil.class); Mockito.mockStatic(KmsSdkTool.class); Mockito.when(FileUtil.readFile(Mockito.any())).thenReturn(xml); Mockito.when(KmsSdkTool.encrypt(null, "123")).thenReturn(""); CommonsMultipartFile file = Mockito.mock(CommonsMultipartFile.class); Mockito.when(file.getFilename()).thenReturn("TEST.zip"); Mockito.when(file.getTempFileName()).thenReturn("TEST.zip"); TestCase testCase1 = testCaseService.uploadTestCase("AAA", "TEST", file); assertEquals(testCase1, testCase); } /** * 测试用例描述:测试获取用例列表的场景 * 预置条件:调用testCaseDao.queryTestCaseList返回包含testCases的list * 操作步骤:调用testCaseService.queryTestCaseList * 预期结果:caseName为TEST */ @Test public void testQueryTestCaseList() { testCase.setCaseId("111"); List<TestCase> testCases = new ArrayList<>(Collections.singletonList(testCase)); Mockito.when(testCaseDao.queryTestCaseList(Mockito.anyString(), Mockito.anyString(), Mockito.any())) .thenReturn(testCases); QueryTestCaseResult queryTestCaseResult = testCaseService.queryTestCaseList("AAA", 1, 10, new CaseFilterVo()); assertEquals(queryTestCaseResult.getList().get(0).getCaseName(), "TEST"); } /** * 测试用例描述:测试查询用例步骤的场景 * 预置条件:调用testCaseDao.queryByCaseId返回testCases * 操作步骤:调用testCaseService.queryTestCaseSteps * 预期结果:actions的size为11 */ @Test public void testQueryTestCaseDetail() { Mockito.when(testCaseDao.queryByCaseId(Mockito.anyString())).thenReturn(testCase); FileService fileService = Mockito.mock(FileService.class); Mockito.mockStatic(FileServiceManager.class); Mockito.when(FileServiceManager.getShardFileService()).thenReturn(fileService); Mockito.when(fileService.getFileStream(Mockito.any())).thenThrow(new RuntimeException()); List<Action> actions = testCaseService.queryTestCaseSteps("123"); assertEquals(actions.size(), 11); } /** * 测试用例描述:测试删除用例步骤的场景 * 预置条件:调用testCaseDao.findAllByCaseIdIn返回包含testCases的集合 * 操作步骤:调用testCaseService.deleteTestCase * 预期结果:调用到testCaseDao.findAllByCaseIdIn */ @Test public void testDeleteTestCase() { Mockito.when(testCaseDao.findAllByCaseIdIn(Mockito.any())).thenReturn(Collections.singletonList(testCase)); FileService fileService = Mockito.mock(FileService.class); Mockito.mockStatic(FileServiceManager.class); Mockito.when(FileServiceManager.getShardFileService()).thenReturn(fileService); TestCaseVo testCaseVo = new TestCaseVo(); testCaseVo.setCaseId("123"); testCaseService.deleteTestCase(Collections.singletonList(testCaseVo)); Mockito.verify(testCaseDao).findAllByCaseIdIn(Mockito.any()); } /** * 测试用例描述:测试修改用例步骤 * 预置条件:调用testCaseDao.queryByCaseId返回testCases * 调用testCaseDao.updateXmlScriptByCaseId do nothing * 操作步骤:调用testCaseService.updateTestCase * 预期结果:调用到testCaseDao.updateXmlScriptByCaseId */ @Test public void testUpdateTestCase() { Mockito.when(testCaseDao.queryByCaseId(Mockito.any())).thenReturn(testCase); Mockito.doNothing().when(testCaseDao).updateXmlScriptByCaseId(Mockito.anyString(), Mockito.any()); TestCaseStepDto testCaseStepDto = new TestCaseStepDto(); testCaseStepDto.setStepId("973be0b2-dc1d-40be-bdd3-dbd66cb2fd6c"); testCaseStepDto.setDelete(false); testCaseStepDto.setStepName("asdf"); testCaseStepDto.setStepValue("bcsd"); testCaseStepDto.setEncrypt(false); TestCaseStepDto testCaseStepDto1 = new TestCaseStepDto(); testCaseStepDto1.setStepId("5feb9f2f-7020-42e5-9f1d-398b86dc77ce"); testCaseStepDto1.setDelete(true); testCaseService.updateTestCase("11", Arrays.asList(testCaseStepDto1, testCaseStepDto)); Mockito.verify(testCaseDao).updateXmlScriptByCaseId(Mockito.anyString(), Mockito.any()); } /** * 测试用例描述:测试修改用例名称 * 预置条件:调用testCaseDao.queryByCaseId返回testCases * 调用testCaseDao.updateCaseName do nothing * 操作步骤:调用testCaseService.updateCaseNameAndEnvInfo * 预期结果:调用到testCaseDao.updateCaseName */ @Test public void testUpdateCaseNameAndEnvInfo() { Mockito.when(testCaseDao.queryByCaseId(Mockito.any())).thenReturn(testCase); Mockito.doNothing().when(testCaseDao).updateCaseName(Mockito.anyString(), Mockito.anyString()); testCaseService.updateCaseNameAndEnvInfo("11", "abc"); Mockito.verify(testCaseDao).updateCaseName(Mockito.anyString(), Mockito.anyString()); } /** * 设置验证点 * * @return 验证点 */ private VerificationPoint getVerificationPoint() { VerificationPoint verificationPoint = new VerificationPoint(); verificationPoint.setValidationStepId("5eebb949-c16f-40c2-b567-7c23da4b87ed"); verificationPoint.setValidationStepName("click"); verificationPoint.setOperation("in"); verificationPoint.setName("验证点"); verificationPoint.setValue("abc"); return verificationPoint; } /** * 测试用例描述:测试增加验证点 * 预置条件:调用testCaseDao.queryByCaseId返回testCases * 调用testCaseDao.updateXmlScriptByCaseId do nothing * 操作步骤:调用testCaseService.addVerification * 预期结果:调用到testCaseDao.updateXmlScriptByCaseId */ @Test public void testAddVerification() { Mockito.when(testCaseDao.queryByCaseId(Mockito.any())).thenReturn(testCase); Mockito.doNothing().when(testCaseDao).updateXmlScriptByCaseId(Mockito.anyString(), Mockito.any()); testCaseService.addVerification("11", getVerificationPoint()); Mockito.verify(testCaseDao).updateXmlScriptByCaseId(Mockito.anyString(), Mockito.any()); } /** * 测试用例描述:测试修改验证点 * 预置条件:调用testCaseDao.queryByCaseId返回testCases * 调用testCaseDao.updateXmlScriptByCaseId do nothing * 操作步骤:调用testCaseService.updateVerification * 预期结果:调用到testCaseDao.updateXmlScriptByCaseId */ @Test public void testUpdateVerification() { Mockito.when(testCaseDao.queryByCaseId(Mockito.any())).thenReturn(testCase); Mockito.doNothing().when(testCaseDao).updateXmlScriptByCaseId(Mockito.anyString(), Mockito.any()); VerificationPoint verificationPoint = getVerificationPoint(); verificationPoint.setId("abc"); testCaseService.updateVerification("11", verificationPoint); Mockito.verify(testCaseDao).updateXmlScriptByCaseId(Mockito.anyString(), Mockito.any()); } /** * 测试用例描述:测试删除验证点 * 预置条件:调用testCaseDao.queryByCaseId返回testCases * 操作步骤:调用testCaseService.deleteVerification * 预期结果:调用到testCaseDao.updateXmlScriptByCaseId */ @Test public void testDeleteVerification() { Mockito.when(testCaseDao.queryByCaseId(Mockito.any())).thenReturn(testCase); testCaseService.deleteVerification("11", "abc"); Mockito.verify(testCaseDao).updateXmlScriptByCaseId(Mockito.anyString(), Mockito.any()); } /** * 测试用例描述:测试检验xml脚本方法 * 预置条件:调用KmsSdkTool.encrypt加密123返回no * 校验的xml通过xml文件设置 * 操作步骤:调用TestCaseServiceImpl.checkXmlScript * 预期结果:加密后的xml符合要求 * * @throws IOException IOException */ @Test public void testCheckXml() throws IOException { TestCaseServiceImpl testCaseServiceImpl = new TestCaseServiceImpl(testCaseDao); Mockito.mockStatic(KmsSdkTool.class); Mockito.when(KmsSdkTool.encrypt(null, "123")).thenReturn("no"); String xmlNew = testCaseServiceImpl.checkXmlScript(xml); XmlUtil.parseXmlString(xmlNew); String xmlExpect = FileUtil.readFile("src/test/resources/playbackScriptEncrypt.xml".replaceAll("//", File.separator)); xmlExpect = xmlExpect.replaceAll("\r", ""); assertEquals(xmlExpect, xmlNew); } } 报错------------------------------------------------------------------------------- Test set: com.huawei.gts.testcaseapi.service.TestCaseServiceTest ------------------------------------------------------------------------------- Tests run: 10, Failures: 0, Errors: 10, Skipped: 0, Time elapsed: 0.168 s <<< FAILURE! -- in com.huawei.gts.testcaseapi.service.TestCaseServiceTest com.huawei.gts.testcaseapi.service.TestCaseServiceTest.testCheckXml -- Time elapsed: 0.142 s <<< ERROR! org.mockito.exceptions.base.MockitoException: For com.huawei.adcmate.sdk.project.utils.UnifyDevUserAccessCheckUtil, static mocking is already registered in the current thread To create a new mock, the existing static mock registration must be deregistered at com.huawei.gts.testcaseapi.service.TestCaseServiceTest.init(TestCaseServiceTest.java:71) at java.base/java.util.ArrayList.forEach(ArrayList.java:1596) at java.base/java.util.ArrayList.forEach(ArrayList.java:1596) com.huawei.gts.testcaseapi.service.TestCaseServiceTest.testUpdateTestCase -- Time elapsed: 0.001 s <<< ERROR! org.mockito.exceptions.base.MockitoException: For com.huawei.adcmate.sdk.project.utils.UnifyDevUserAccessCheckUtil, static mocking is already registered in the current thread To create a new mock, the existing static mock registration must be deregistered at com.huawei.gts.testcaseapi.service.TestCaseServiceTest.init(TestCaseServiceTest.java:71) at java.base/java.util.ArrayList.forEach(ArrayList.java:1596) at java.base/java.util.ArrayList.forEach(ArrayList.java:1596) com.huawei.gts.testcaseapi.service.TestCaseServiceTest.testDeleteVerification -- Time elapsed: 0.001 s <<< ERROR! org.mockito.exceptions.base.MockitoException: For com.huawei.adcmate.sdk.project.utils.UnifyDevUserAccessCheckUtil, static mocking is already registered in the current thread To create a new mock, the existing static mock registration must be deregistered at com.huawei.gts.testcaseapi.service.TestCaseServiceTest.init(TestCaseServiceTest.java:71) at java.base/java.util.ArrayList.forEach(ArrayList.java:1596) at java.base/java.util.ArrayList.forEach(ArrayList.java:1596) com.huawei.gts.testcaseapi.service.TestCaseServiceTest.testDeleteTestCase -- Time elapsed: 0.002 s <<< ERROR! org.mockito.exceptions.base.MockitoException: For com.huawei.adcmate.sdk.project.utils.UnifyDevUserAccessCheckUtil, static mocking is already registered in the current thread To create a new mock, the existing static mock registration must be deregistered at com.huawei.gts.testcaseapi.service.TestCaseServiceTest.init(TestCaseServiceTest.java:71) at java.base/java.util.ArrayList.forEach(ArrayList.java:1596) at java.base/java.util.ArrayList.forEach(ArrayList.java:1596) com.huawei.gts.testcaseapi.service.TestCaseServiceTest.testUpdateVerification -- Time elapsed: 0.001 s <<< ERROR! org.mockito.exceptions.base.MockitoException: For com.huawei.adcmate.sdk.project.utils.UnifyDevUserAccessCheckUtil, static mocking is already registered in the current thread To create a new mock, the existing static mock registration must be deregistered at com.huawei.gts.testcaseapi.service.TestCaseServiceTest.init(TestCaseServiceTest.java:71) at java.base/java.util.ArrayList.forEach(ArrayList.java:1596) at java.base/java.util.ArrayList.forEach(ArrayList.java:1596) com.huawei.gts.testcaseapi.service.TestCaseServiceTest.testAddVerification -- Time elapsed: 0.002 s <<< ERROR! org.mockito.exceptions.base.MockitoException: For com.huawei.adcmate.sdk.project.utils.UnifyDevUserAccessCheckUtil, static mocking is already registered in the current thread To create a new mock, the existing static mock registration must be deregistered at com.huawei.gts.testcaseapi.service.TestCaseServiceTest.init(TestCaseServiceTest.java:71) at java.base/java.util.ArrayList.forEach(ArrayList.java:1596) at java.base/java.util.ArrayList.forEach(ArrayList.java:1596) com.huawei.gts.testcaseapi.service.TestCaseServiceTest.testQueryTestCaseList -- Time elapsed: 0.001 s <<< ERROR! org.mockito.exceptions.base.MockitoException: For com.huawei.adcmate.sdk.project.utils.UnifyDevUserAccessCheckUtil, static mocking is already registered in the current thread To create a new mock, the existing static mock registration must be deregistered at com.huawei.gts.testcaseapi.service.TestCaseServiceTest.init(TestCaseServiceTest.java:71) at java.base/java.util.ArrayList.forEach(ArrayList.java:1596) at java.base/java.util.ArrayList.forEach(ArrayList.java:1596) com.huawei.gts.testcaseapi.service.TestCaseServiceTest.testQueryTestCaseDetail -- Time elapsed: 0.001 s <<< ERROR! org.mockito.exceptions.base.MockitoException: For com.huawei.adcmate.sdk.project.utils.UnifyDevUserAccessCheckUtil, static mocking is already registered in the current thread To create a new mock, the existing static mock registration must be deregistered at com.huawei.gts.testcaseapi.service.TestCaseServiceTest.init(TestCaseServiceTest.java:71) at java.base/java.util.ArrayList.forEach(ArrayList.java:1596) at java.base/java.util.ArrayList.forEach(ArrayList.java:1596) com.huawei.gts.testcaseapi.service.TestCaseServiceTest.testUploadTestCase -- Time elapsed: 0.001 s <<< ERROR! org.mockito.exceptions.base.MockitoException: For com.huawei.adcmate.sdk.project.utils.UnifyDevUserAccessCheckUtil, static mocking is already registered in the current thread To create a new mock, the existing static mock registration must be deregistered at com.huawei.gts.testcaseapi.service.TestCaseServiceTest.init(TestCaseServiceTest.java:71) at java.base/java.util.ArrayList.forEach(ArrayList.java:1596) at java.base/java.util.ArrayList.forEach(ArrayList.java:1596) com.huawei.gts.testcaseapi.service.TestCaseServiceTest.testUpdateCaseNameAndEnvInfo -- Time elapsed: 0.001 s <<< ERROR! org.mockito.exceptions.base.MockitoException: For com.huawei.adcmate.sdk.project.utils.UnifyDevUserAccessCheckUtil, static mocking is already registered in the current thread To create a new mock, the existing static mock registration must be deregistered at com.huawei.gts.testcaseapi.service.TestCaseServiceTest.init(TestCaseServiceTest.java:71) at java.base/java.util.ArrayList.forEach(ArrayList.java:1596) at java.base/java.util.ArrayList.forEach(ArrayList.java:1596)
最新发布
11-06
Aug 13, 2025 5:19:35 PM com.kms.katalon.core.logging.KeywordLogger startTest INFO: -------------------- Aug 13, 2025 5:19:35 PM com.kms.katalon.core.logging.KeywordLogger startTest INFO: START Test Cases/Get Report in CWS Aug 13, 2025 5:19:36 PM com.kms.katalon.core.logging.KeywordLogger logInfo INFO: Starting 'Chrome' driver Aug 13, 2025 5:19:37 PM com.kms.katalon.core.logging.KeywordLogger logInfo INFO: Action delay is set to 0 milliseconds Aug 13, 2025 5:19:37 PM com.kms.katalon.core.logging.KeywordLogger logFailed SEVERE: ❌ Unable to open browser with url: '' (Root cause: com.kms.katalon.core.exception.StepFailedException: Unable to open browser with url: '' at com.kms.katalon.core.webui.keyword.internal.WebUIKeywordMain.stepFailed(WebUIKeywordMain.groovy:117) at com.kms.katalon.core.webui.keyword.internal.WebUIKeywordMain.runKeyword(WebUIKeywordMain.groovy:43) at com.kms.katalon.core.webui.keyword.builtin.OpenBrowserKeyword.openBrowser(OpenBrowserKeyword.groovy:47) at com.kms.katalon.core.webui.keyword.builtin.OpenBrowserKeyword.execute(OpenBrowserKeyword.groovy:33) at com.kms.katalon.core.keyword.internal.KeywordExecutor.executeKeywordForPlatform(KeywordExecutor.groovy:74) at com.kms.katalon.core.webui.keyword.WebUiBuiltInKeywords.openBrowser(WebUiBuiltInKeywords.groovy:62) at Get Report in CWS.run(Get Report in CWS:68) at com.kms.katalon.core.main.ScriptEngine.run(ScriptEngine.java:194) at com.kms.katalon.core.main.ScriptEngine.runScriptAsRawText(ScriptEngine.java:119) at com.kms.katalon.core.main.TestCaseExecutor.runScript(TestCaseExecutor.java:448) at com.kms.katalon.core.main.TestCaseExecutor.doExecute(TestCaseExecutor.java:439) at com.kms.katalon.core.main.TestCaseExecutor.processExecutionPhase(TestCaseExecutor.java:418) at com.kms.katalon.core.main.TestCaseExecutor.accessMainPhase(TestCaseExecutor.java:410) at com.kms.katalon.core.main.TestCaseExecutor.execute(TestCaseExecutor.java:285) at com.kms.katalon.core.main.TestCaseMain.runTestCase(TestCaseMain.java:137) at com.kms.katalon.core.main.TestCaseMain.runTestCase(TestCaseMain.java:125) at TempTestCase1755076771835.run(TempTestCase1755076771835.groovy:25) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) Caused by: org.openqa.selenium.SessionNotCreatedException: Could not start a new session. Response code 500. Message: session not created from unknown error: cannot find Chrome binary Host info: host: 'CNM62C3LR3', ip: '10.242.162.85' Build info: version: '4.22.0', revision: 'c5f3146703' System info: os.name: 'Windows 11', os.arch: 'amd64', os.version: '10.0', java.version: '17.0.14' Driver info: com.kms.katalon.selenium.driver.CChromeDriver Command: [null, newSession {capabilities=[Capabilities {browserName: chrome, goog:chromeOptions: {args: [], extensions: []}, unhandledPromptBehavior: ignore, webSocketUrl: true}]}] at org.openqa.selenium.remote.ProtocolHandshake.createSession(ProtocolHandshake.java:114) at org.openqa.selenium.remote.ProtocolHandshake.createSession(ProtocolHandshake.java:75) at org.openqa.selenium.remote.ProtocolHandshake.createSession(ProtocolHandshake.java:61) at org.openqa.selenium.remote.HttpCommandExecutor.execute(HttpCommandExecutor.java:162) at org.openqa.selenium.remote.service.DriverCommandExecutor.invokeExecute(DriverCommandExecutor.java:216) at org.openqa.selenium.remote.service.DriverCommandExecutor.execute(DriverCommandExecutor.java:174) at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:518) at org.openqa.selenium.remote.RemoteWebDriver.startSession(RemoteWebDriver.java:232) at org.openqa.selenium.remote.RemoteWebDriver.<init>(RemoteWebDriver.java:161) at org.openqa.selenium.chromium.ChromiumDriver.<init>(ChromiumDriver.java:114) at org.openqa.selenium.chrome.ChromeDriver.<init>(ChromeDriver.java:88) at org.openqa.selenium.chrome.ChromeDriver.<init>(ChromeDriver.java:83) at org.openqa.selenium.chrome.ChromeDriver.<init>(ChromeDriver.java:72) at com.kms.katalon.selenium.driver.CChromeDriver.<init>(CChromeDriver.java:13) at com.kms.katalon.core.webui.driver.chrome.ChromeDriverBuilder.createDriver(ChromeDriverBuilder.java:41) at com.kms.katalon.core.webui.driver.AbstractDriverBuilder.build(AbstractDriverBuilder.java:39) at com.kms.katalon.core.webui.driver.DriverFactory.startNewBrowser(DriverFactory.java:251) at com.kms.katalon.core.webui.driver.DriverFactory.openWebDriver(DriverFactory.java:161) at com.kms.katalon.core.webui.keyword.builtin.OpenBrowserKeyword$_openBrowser_closure1.doCall(OpenBrowserKeyword.groovy:40) at com.kms.katalon.core.webui.keyword.builtin.OpenBrowserKeyword$_openBrowser_closure1.call(OpenBrowserKeyword.groovy) at com.kms.katalon.core.webui.keyword.internal.WebUIKeywordMain.runKeyword(WebUIKeywordMain.groovy:35) at com.kms.katalon.core.webui.keyword.builtin.OpenBrowserKeyword.openBrowser(OpenBrowserKeyword.groovy:47) at com.kms.katalon.core.webui.keyword.builtin.OpenBrowserKeyword.execute(OpenBrowserKeyword.groovy:33) at com.kms.katalon.core.keyword.internal.KeywordExecutor.executeKeywordForPlatform(KeywordExecutor.groovy:74) at com.kms.katalon.core.webui.keyword.WebUiBuiltInKeywords.openBrowser(WebUiBuiltInKeywords.groovy:62) at Script1754445852181.run(Script1754445852181.groovy:68) ... 13 more ) Aug 13, 2025 5:19:37 PM com.kms.katalon.core.logging.KeywordLogger log SEVERE: ❌ Test Cases/Get Report in CWS FAILED. Reason: com.kms.katalon.core.exception.StepFailedException: Unable to open browser with url: '' at com.kms.katalon.core.webui.keyword.internal.WebUIKeywordMain.stepFailed(WebUIKeywordMain.groovy:117) at com.kms.katalon.core.webui.keyword.internal.WebUIKeywordMain.runKeyword(WebUIKeywordMain.groovy:43) at com.kms.katalon.core.webui.keyword.builtin.OpenBrowserKeyword.openBrowser(OpenBrowserKeyword.groovy:47) at com.kms.katalon.core.webui.keyword.builtin.OpenBrowserKeyword.execute(OpenBrowserKeyword.groovy:33) at com.kms.katalon.core.keyword.internal.KeywordExecutor.executeKeywordForPlatform(KeywordExecutor.groovy:74) at com.kms.katalon.core.webui.keyword.WebUiBuiltInKeywords.openBrowser(WebUiBuiltInKeywords.groovy:62) at Get Report in CWS.run(Get Report in CWS:68) at com.kms.katalon.core.main.ScriptEngine.run(ScriptEngine.java:194) at com.kms.katalon.core.main.ScriptEngine.runScriptAsRawText(ScriptEngine.java:119) at com.kms.katalon.core.main.TestCaseExecutor.runScript(TestCaseExecutor.java:448) at com.kms.katalon.core.main.TestCaseExecutor.doExecute(TestCaseExecutor.java:439) at com.kms.katalon.core.main.TestCaseExecutor.processExecutionPhase(TestCaseExecutor.java:418) at com.kms.katalon.core.main.TestCaseExecutor.accessMainPhase(TestCaseExecutor.java:410) at com.kms.katalon.core.main.TestCaseExecutor.execute(TestCaseExecutor.java:285) at com.kms.katalon.core.main.TestCaseMain.runTestCase(TestCaseMain.java:137) at com.kms.katalon.core.main.TestCaseMain.runTestCase(TestCaseMain.java:125) at TempTestCase1755076771835.run(TempTestCase1755076771835.groovy:25) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) Caused by: org.openqa.selenium.SessionNotCreatedException: Could not start a new session. Response code 500. Message: session not created from unknown error: cannot find Chrome binary Host info: host: 'CNM62C3LR3', ip: '10.242.162.85' Build info: version: '4.22.0', revision: 'c5f3146703' System info: os.name: 'Windows 11', os.arch: 'amd64', os.version: '10.0', java.version: '17.0.14' Driver info: com.kms.katalon.selenium.driver.CChromeDriver Command: [null, newSession {capabilities=[Capabilities {browserName: chrome, goog:chromeOptions: {args: [], extensions: []}, unhandledPromptBehavior: ignore, webSocketUrl: true}]}] at org.openqa.selenium.remote.ProtocolHandshake.createSession(ProtocolHandshake.java:114) at org.openqa.selenium.remote.ProtocolHandshake.createSession(ProtocolHandshake.java:75) at org.openqa.selenium.remote.ProtocolHandshake.createSession(ProtocolHandshake.java:61) at org.openqa.selenium.remote.HttpCommandExecutor.execute(HttpCommandExecutor.java:162) at org.openqa.selenium.remote.service.DriverCommandExecutor.invokeExecute(DriverCommandExecutor.java:216) at org.openqa.selenium.remote.service.DriverCommandExecutor.execute(DriverCommandExecutor.java:174) at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:518) at org.openqa.selenium.remote.RemoteWebDriver.startSession(RemoteWebDriver.java:232) at org.openqa.selenium.remote.RemoteWebDriver.<init>(RemoteWebDriver.java:161) at org.openqa.selenium.chromium.ChromiumDriver.<init>(ChromiumDriver.java:114) at org.openqa.selenium.chrome.ChromeDriver.<init>(ChromeDriver.java:88) at org.openqa.selenium.chrome.ChromeDriver.<init>(ChromeDriver.java:83) at org.openqa.selenium.chrome.ChromeDriver.<init>(ChromeDriver.java:72) at com.kms.katalon.selenium.driver.CChromeDriver.<init>(CChromeDriver.java:13) at com.kms.katalon.core.webui.driver.chrome.ChromeDriverBuilder.createDriver(ChromeDriverBuilder.java:41) at com.kms.katalon.core.webui.driver.AbstractDriverBuilder.build(AbstractDriverBuilder.java:39) at com.kms.katalon.core.webui.driver.DriverFactory.startNewBrowser(DriverFactory.java:251) at com.kms.katalon.core.webui.driver.DriverFactory.openWebDriver(DriverFactory.java:161) at com.kms.katalon.core.webui.keyword.builtin.OpenBrowserKeyword$_openBrowser_closure1.doCall(OpenBrowserKeyword.groovy:40) at com.kms.katalon.core.webui.keyword.builtin.OpenBrowserKeyword$_openBrowser_closure1.call(OpenBrowserKeyword.groovy) at com.kms.katalon.core.webui.keyword.internal.WebUIKeywordMain.runKeyword(WebUIKeywordMain.groovy:35) ... 18 more Aug 13, 2025 5:19:37 PM com.kms.katalon.core.logging.KeywordLogger endTest INFO: END Test Cases/Get Report in CWS
08-14
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小小的香辛料

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值