- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我遇到了问题。我通过 Java 自动化代码运行 SoapUI Web 服务测试。但在那之后。 Selenium 不起作用。看来soapUI部分实际上还没有完成。但我不确定。
public static void main(String[] args) throws Exception {
SoapUIRun srun = new SoapUIRun();
srun.runTestCase("CPIHS", "CPIHS");
new MainPage().LoginCad();
}
异常消息是:
Exception in thread "main" org.openqa.selenium.remote.UnreachableBrowserException: Could not start a new session. Possible causes are invalid address of the remote server or browser start-up failure.
Build info: version: '2.52.0', revision: '4c2593cfc3689a7fcd7be52549167e5ccc93ad28', time: '2016-02-11 11:22:43'
System info: host: 'GFG-GROUP153', ip: '10.100.1.7', os.name: 'Windows 7', os.arch: 'amd64', os.version: '6.1', java.version: '1.8.0_102'
Driver info: driver.version: ChromeDriver
at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:665)
at org.openqa.selenium.remote.RemoteWebDriver.startSession(RemoteWebDriver.java:249)
at org.openqa.selenium.remote.RemoteWebDriver.<init>(RemoteWebDriver.java:131)
at org.openqa.selenium.remote.RemoteWebDriver.<init>(RemoteWebDriver.java:144)
at org.openqa.selenium.chrome.ChromeDriver.<init>(ChromeDriver.java:170)
at org.openqa.selenium.chrome.ChromeDriver.<init>(ChromeDriver.java:159)
at org.openqa.selenium.chrome.ChromeDriver.<init>(ChromeDriver.java:116)
at screens.MainPage.LoginCad(MainPage.java:28)
at screens.MainPage.main(MainPage.java:87)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at com.intellij.rt.execution.application.AppMain.main(AppMain.java:147)
Caused by: java.lang.NullPointerException
at org.apache.http.impl.conn.SystemDefaultRoutePlanner.determineProxy(SystemDefaultRoutePlanner.java:79)
at org.apache.http.impl.conn.DefaultRoutePlanner.determineRoute(DefaultRoutePlanner.java:77)
at org.apache.http.impl.client.InternalHttpClient.determineRoute(InternalHttpClient.java:124)
at org.apache.http.impl.client.InternalHttpClient.doExecute(InternalHttpClient.java:183)
at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:71)
at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:55)
at org.openqa.selenium.remote.internal.ApacheHttpClient.fallBackExecute(ApacheHttpClient.java:144)
at org.openqa.selenium.remote.internal.ApacheHttpClient.execute(ApacheHttpClient.java:90)
at org.openqa.selenium.remote.HttpCommandExecutor.execute(HttpCommandExecutor.java:142)
at org.openqa.selenium.remote.service.DriverCommandExecutor.execute(DriverCommandExecutor.java:82)
at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:644)
... 13 more
但是我注释掉了SoapUI部分。它会再次起作用。喜欢:
public static void main(String[] args) throws Exception {
//SoapUIRun srun = new SoapUIRun();
//srun.runTestCase("CPIHS", "CPIHS");
new MainPage().LoginCad();
}
这是我的 SoapUI 方法:
public void runTestCase(String tarSuite, String tarCase) throws Exception {
String reportStr = "";
TestRunner runner;
SoapUI.setSoapUICore(new StandaloneSoapUICore(true));
WsdlProject project = new WsdlProject("C:\\Users\\tshi\\Documents\\Maven Projects\\ASORT\\WebServiceResource\\Suncorp_Issuing-soapui-project.xml");
List<TestSuite> suiteList = project.getTestSuiteList();
for (TestSuite aSuiteList : suiteList) {
String suiteName = aSuiteList.getName();
List<TestCase> caseList = aSuiteList.getTestCaseList();
//System.out.println("Test Suite: " + suiteName);
if (suiteName.equals(tarSuite)) {
for (TestCase aCaseList : caseList) {
String caseName = aCaseList.getName();
//System.out.println("Test Case: " + caseName);
if (caseName.equals(tarCase)) {
long startTime = System.currentTimeMillis();
runner = project.getTestSuiteByName(suiteName).getTestCaseByName(caseName).run(new PropertiesMap(), false);
long duration = System.currentTimeMillis() - startTime;
reportStr = reportStr + "\n\tTestCase: " + aCaseList.getName() + "\tStatus: " + runner.getStatus() + "\tReason: " + runner.getReason() + "\tDuration: " + duration;
System.out.print(reportStr);
}
}
}
}
}
这是Selenium相关的方法:
public void LoginCad(){
System.setProperty("webdriver.chrome.bin", "C:\\Program Files (x86)\\Google\\Chrome\\Application\\chrome.exe");
System.setProperty("webdriver.chrome.driver","C:\\Program Files (x86)\\Google\\Chrome\\Application\\chromedriver.exe");
String bank = Integer.toString(48);
String emp = Integer.toString(200003);
String pwd = "Cadencie1";
String baseUrl = "http://172.16.1.133:8090/AppName/servlet/app";
driver = new ChromeDriver();
driver.get(baseUrl);
try {
Thread.sleep(1000);
} catch(InterruptedException e){
// TO DO Auto-generated catch block
e.printStackTrace();
}
Utilities.switchToWindow("AppName - User Logon [LOGON]", driver);
try{
Thread.sleep(2000);
} catch(InterruptedException e){
// TO DO Auto-generated catch block
e.printStackTrace();
}
driver.findElement(By.id("idBANK")).clear();
driver.findElement(By.id("idBANK")).sendKeys(bank);
driver.findElement(By.id("idEMPLOYEE")).clear();
driver.findElement(By.id("idEMPLOYEE")).sendKeys(emp);
driver.findElement(By.id("idPASSWORD")).clear();
driver.findElement(By.id("idPASSWORD")).sendKeys(pwd);
driver.findElement(By.id("maintLOGON")).click();
driver.findElement(By.id("idPASSWORD")).clear();
driver.findElement(By.id("idPASSWORD")).sendKeys(pwd);
driver.findElement(By.id("maint")).click();
}
任何人都知道为什么会发生这种情况。我在谷歌上搜索过。但似乎没有人在相同的情况下遇到相同的错误。非常感谢。
最佳答案
如果问题仅在执行 SOAPUI 后发生在 selenium 上,则可能是某些 SOAPUI 配置导致了该问题。该问题可能是由于 SOAPUI 将默认代理设置为 null
,然后当 selenium 尝试获取代理以检查配置时收到 NullPointerExcetpion
。
根据您的错误跟踪:
Caused by: java.lang.NullPointerException
at org.apache.http.impl.conn.SystemDefaultRoutePlanner.determineProxy(SystemDefaultRoutePlanner.java:79)
如果你看一下org.apache.http.impl.conn.SystemDefaultRoutePlanner
的源代码类:
(请注意,我保留行号以与您的错误跟踪相关联)
53 public class More ...SystemDefaultRoutePlanner extends DefaultRoutePlanner {
54
55 private final ProxySelector proxySelector;
56
57 public More ...SystemDefaultRoutePlanner(
58 final SchemePortResolver schemePortResolver,
59 final ProxySelector proxySelector) {
60 super(schemePortResolver);
/*
proxySelector ARE NULL AND ProxySelector.getDefault();
RETURNS ALSO NULL DUE THAT SOAPUI PROBABLY MAKE BEFORE
ProxySelect.setDefault(null);
*/
61 this.proxySelector = proxySelector != null ? proxySelector : ProxySelector.getDefault();
62 }
63
64 public More ...SystemDefaultRoutePlanner(final ProxySelector proxySelector) {
65 this(null, proxySelector);
66 }
67
68 @Override
69 protected HttpHost More ...determineProxy(
70 final HttpHost target,
71 final HttpRequest request,
72 final HttpContext context) throws HttpException {
73 final URI targetURI;
74 try {
75 targetURI = new URI(target.toURI());
76 } catch (final URISyntaxException ex) {
77 throw new HttpException("Cannot convert host to URI: " + target, ex);
78 }
/* HERE IS THE NULLPOINTER */
79 final List<Proxy> proxies = this.proxySelector.select(targetURI);
因此,一个可能的解决方案是您自己处理ProxySelect
。然后您可以尝试以下解决方法:
import java.net.ProxySelector;
...
public static void main(String[] args) throws Exception {
// get default proxy before soapui will set it to null
ProxySelector proxy = ProxySelector.getDefault();
SoapUIRun srun = new SoapUIRun();
srun.runTestCase("CPIHS", "CPIHS");
// set it again to avoid NPE on selenium
ProxySelector.setDefault(proxy);
new MainPage().LoginCad();
}
关于java - 运行 SoapUI 后,无法启动 selenium,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39403993/
是否有任何命令行参数或其他方式,以便在启动soap ui 时启动所有模拟服务? 最佳答案 由于 mockServices 是一个 Map 这也将起作用: project.mockServices.ea
我正在使用 SoapUI 3.6.1。 我需要从响应中提取详细信息并将它们插入到下一个请求中。 我尝试通过“属性(property)转让”来做到这一点。 在第一个请求中,我得到了一些详细信息,在响应中
Soapui 项目有 100+ 个操作的服务。 当操作未排序时,导航非常困难。 有没有办法在soapui中订购操作? 我正在使用soapui 免费版本,但我也对SoapUI NG Pro 的解决方案感
有没有一种方法可以在SOAPUI(免费)上配置测试用例,测试套件甚至项目级别的测试中的请求所使用的资源/方法? 我们有以下用例:相同的REST服务运行在不同的服务器上(可能有不同的版本),并且根据配置
我需要将先前测试步骤中的一些值传输到查询参数中,该参数是下一个测试步骤的列表。我正在使用 SoapUI Pro 5。 例子: 我调用 addCustomer 两次并为新客户获取两个 ID,例如 ID=
我目前有一个测试套件,它使用我的默认代理地址。我现在有一个服务,它只能使用指定的代理地址成功执行。我想要做的是设置第二个测试套件,使其在指定的代理上运行,而无需在 Internet 选项中手动更改代理
我正在尝试使用 SOAPUI(免费版)测试我的 Web 服务。为了测试并发性,我希望将并发线程从 SOAPUI 触发到服务上。但是使用这些选项,线程数会逐渐增加(即使在突发模式下)。安装 SOAPUI
在 Windows 7 上使用 SoapUI v 3.6.1,文本很小。没有找到增加文本的选项。 最佳答案 从菜单中选择文件>首选项(或按Ctrl + Alt + P),然后选择编辑器设置组。点击 E
我正在使用 SoapUI 测试网络服务请求。 我有一个字符串作为过滤器,在我的请求中是按位的。该字段是 SoapUI 的枚举。在 XSD 中,我拥有所有枚举值。 我需要能够在字段中发送 2 个或更多枚
我在授权和未授权的情况下测试我的 WS(打开和关闭它并重新启动)。我花了很多时间想知道为什么即使我提供了无授权,它也能安全地连接到 WS: 在此期间,我使用 curl 进行了相同的测试,后来我检查并意
我是 SoapUI 的新手,刚刚配置了一个非常简单的 MockService。是否可以操纵响应以便针对特定请求动态构建响应的元素? 场景一: 要求: ID1 回复: child 1 场
我正在使用 soapUI 4.5.1 并想像这样设置一个测试用例(使用项目中已有的 REST 请求): 向服务器认证,接收cookie 请求另一个只有在经过身份验证后才可用的资源 我遇到的问题是,即使
我正在玩 SoapUI(免费/开源版本),看看它是否对我们经常进行的那种广泛的 API 测试有用,因为现在我们在 swagger-ui 页面上进行大部分测试在每个服务器/应用程序中以及一些功能(例如自
半天以来,我一直在尝试使用 SoapUi(基本版本 5.2.1)获取 Transfer 变量中 JSON 数组响应的计数。 - 请看屏幕截图 我将 REST API 的响应作为 JSON 数组获取,并
SoapUI 5.3.0(最新开放源代码版本)Mac卡在MacOS 10.12.3上的全新安装上-安装程序会建议所有预设。 我尝试重新启动并重新安装-每次加载该应用程序时,它只是一个永恒的沙滩球,没有
当我创建客户端时,我正在使用jboss7服务器web-service,然后面临问题,java.net.SocketTimeoutException:读取超时。我还尝试通过增加套接字超时(ms)来使用s
我想在 SoapUI 中测试 Restful 网络服务。为此,我需要从 Excel 中读取值并将其传递给请求。 在网上搜索了一下,发现可以通过DataGen TestStep .我有 SoapUI,但
我正在尝试将 soapui-5.2.1.jar 依赖项添加到 pom.xml。下面是我在 POM 中添加的依赖项: soapui SoapUI
更新到 SoapUI 5.2.0 后,我得到了 15:58:00,756 ERROR [SoapUI] An error occurred [com.eviware.soapui.plugins.au
我在一个测试套件下有 20 个测试用例,每个测试用例在运行时都会为我提供一个需要保存为 pdf 的响应。我在 SoapUI pro 中使用“转储文件”属性将响应保存到文件中。现在每次更改文件夹位置时,
我是一名优秀的程序员,十分优秀!