ContributionsMost RecentMost LikesSolutionsRe: javax.net.ssl.SSLException: Tag mismatch! in ReadyAPI There is no issue with the request as it works fine with SOAP 5.5.0 and Postman. It is issue with the latest versions of ReadyAPI. As the same requests were working with older versions of ReadyAPI. javax.net.ssl.SSLException: Tag mismatch! in ReadyAPI javax.net.ssl.SSLException: Tag mismatch! Im using WSS-config to set the keystore But when trying to fire the request I get the following error Fri Jul 14 15:04:36 CEST 2023: INFO: Error getting response for [AfdPolicyRequestServiceSoapBinding.handlePolicyApplicationRequest:Request 1]; javax.net.ssl.SSLException: Tag mismatch! How can This be resolved ? Cannot import composite project , gives invalid project error. Null pointer exception is reported in We are working with Read API 3.40.1 and use composite project. The ReadyAPI crashed , when I closed and tried to reopen the composite project I get invalid file error. In the logs I see null pointer exception. Following is the snapshot of the error log. 2022-07-13 21:11:08,577 ERROR [errorlog] com.eviware.soapui.support.SoapUIException: Failed to load project from file [file:/C:/Repositories/rcip_dev/Test/RCIP_Test/] com.eviware.soapui.support.SoapUIException: Failed to load project from file [file:/C:/Repositories/rcip_dev/Test/RCIP_Test/] at com.eviware.soapui.impl.wsdl.WsdlProjectPro.loadProject(WsdlProjectPro.java:619) ~[ready-api-soapui-pro-3.40.1.jar:3.40.1] at com.eviware.soapui.impl.wsdl.WsdlProject.<init>(WsdlProject.java:340) ~[ready-api-soapui-3.40.1.jar:3.40.1] at com.eviware.soapui.impl.wsdl.WsdlProject.<init>(WsdlProject.java:319) ~[ready-api-soapui-3.40.1.jar:3.40.1] at com.eviware.soapui.impl.wsdl.WsdlProject.<init>(WsdlProject.java:314) ~[ready-api-soapui-3.40.1.jar:3.40.1] at com.eviware.soapui.impl.wsdl.WsdlProjectPro.<init>(WsdlProjectPro.java:244) ~[ready-api-soapui-pro-3.40.1.jar:3.40.1] at com.eviware.soapui.impl.wsdl.WsdlProjectProFactory.createNew(WsdlProjectProFactory.java:106) ~[ready-api-soapui-pro-3.40.1.jar:3.40.1] at com.eviware.soapui.impl.wsdl.WsdlProjectProFactory.createNew(WsdlProjectProFactory.java:1) ~[ready-api-soapui-pro-3.40.1.jar:3.40.1] at com.eviware.soapui.impl.WorkspaceImpl.importNewProject(WorkspaceImpl.java:725) ~[ready-api-soapui-3.40.1.jar:3.40.1] at com.eviware.soapui.impl.WorkspaceImpl.importProjectWithResult(WorkspaceImpl.java:718) ~[ready-api-soapui-3.40.1.jar:3.40.1] at com.eviware.soapui.impl.actions.InternalProImportWsdlProjectAction.perform(InternalProImportWsdlProjectAction.java:70) ~[ready-api-soapui-pro-3.40.1.jar:3.40.1] at com.eviware.soapui.impl.actions.ImportCompositeWsdlProjectAction.perform(ImportCompositeWsdlProjectAction.java:60) ~[ready-api-soapui-pro-3.40.1.jar:3.40.1] at com.eviware.soapui.impl.actions.ImportCompositeWsdlProjectAction.perform(ImportCompositeWsdlProjectAction.java:1) ~[ready-api-soapui-pro-3.40.1.jar:3.40.1] at com.eviware.soapui.support.action.swing.SwingActionDelegate.actionPerformed(SwingActionDelegate.java:200) ~[ready-api-soapui-3.40.1.jar:3.40.1] at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1972) ~[?:?] at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2313) ~[?:?] at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:405) ~[?:?] at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:262) ~[?:?] at javax.swing.AbstractButton.doClick(AbstractButton.java:374) ~[?:?] at javax.swing.plaf.basic.BasicMenuItemUI.doClick(BasicMenuItemUI.java:1028) ~[?:?] at javax.swing.plaf.basic.BasicMenuItemUI$Handler.mouseReleased(BasicMenuItemUI.java:1072) ~[?:?] at java.awt.Component.processMouseEvent(Component.java:6648) ~[?:?] at javax.swing.JComponent.processMouseEvent(JComponent.java:3392) ~[?:?] at java.awt.Component.processEvent(Component.java:6413) ~[?:?] at java.awt.Container.processEvent(Container.java:2266) ~[?:?] at java.awt.Component.dispatchEventImpl(Component.java:5022) ~[?:?] at java.awt.Container.dispatchEventImpl(Container.java:2324) ~[?:?] at java.awt.Component.dispatchEvent(Component.java:4854) ~[?:?] at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4948) ~[?:?] at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4575) ~[?:?] at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4516) ~[?:?] at java.awt.Container.dispatchEventImpl(Container.java:2310) ~[?:?] at java.awt.Window.dispatchEventImpl(Window.java:2797) ~[?:?] at java.awt.Component.dispatchEvent(Component.java:4854) ~[?:?] at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:779) ~[?:?] at java.awt.EventQueue$4.run(EventQueue.java:728) ~[?:?] at java.awt.EventQueue$4.run(EventQueue.java:722) ~[?:?] at java.security.AccessController.doPrivileged(AccessController.java:399) [?:?] at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:86) ~[?:?] at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:97) ~[?:?] at java.awt.EventQueue$5.run(EventQueue.java:752) ~[?:?] at java.awt.EventQueue$5.run(EventQueue.java:750) ~[?:?] at java.security.AccessController.doPrivileged(AccessController.java:399) [?:?] at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:86) [?:?] at java.awt.EventQueue.dispatchEvent(EventQueue.java:749) [?:?] at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:203) [?:?] at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:124) [?:?] at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:113) [?:?] at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:109) [?:?] at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101) [?:?] at java.awt.EventDispatchThread.run(EventDispatchThread.java:90) [?:?] Caused by: java.lang.NullPointerException: Cannot invoke "com.eviware.soapui.impl.wsdl.teststeps.WsdlTestRequest.setName(String)" because "this.testRequest" is null at com.eviware.soapui.impl.wsdl.teststeps.WsdlTestRequestStep.setName(WsdlTestRequestStep.java:335) ~[ready-api-soapui-3.40.1.jar:3.40.1] at com.eviware.soapui.impl.wsdl.testcase.WsdlTestCase.ensureUniqueName(WsdlTestCase.java:440) ~[ready-api-soapui-3.40.1.jar:3.40.1] at com.eviware.soapui.impl.wsdl.testcase.WsdlTestCase.<init>(WsdlTestCase.java:175) ~[ready-api-soapui-3.40.1.jar:3.40.1] at com.eviware.soapui.impl.wsdl.WsdlTestCasePro.<init>(WsdlTestCasePro.java:70) ~[ready-api-soapui-pro-3.40.1.jar:3.40.1] at com.eviware.soapui.impl.wsdl.WsdlTestSuitePro.buildTestCase(WsdlTestSuitePro.java:87) ~[ready-api-soapui-pro-3.40.1.jar:3.40.1] at com.eviware.soapui.impl.wsdl.WsdlTestSuitePro.buildTestCase(WsdlTestSuitePro.java:1) ~[ready-api-soapui-pro-3.40.1.jar:3.40.1] at com.eviware.soapui.impl.wsdl.WsdlTestSuite.<init>(WsdlTestSuite.java:126) ~[ready-api-soapui-3.40.1.jar:3.40.1] at com.eviware.soapui.impl.wsdl.WsdlTestSuitePro.<init>(WsdlTestSuitePro.java:50) ~[ready-api-soapui-pro-3.40.1.jar:3.40.1] at com.eviware.soapui.impl.wsdl.WsdlProjectPro.buildTestSuite(WsdlProjectPro.java:1348) ~[ready-api-soapui-pro-3.40.1.jar:3.40.1] at com.eviware.soapui.impl.wsdl.WsdlProjectPro.loadProject(WsdlProjectPro.java:553) ~[ready-api-soapui-pro-3.40.1.jar:3.40.1] ... 49 more Re: Centralizing the custom properties defined for Environments. Want to read values from a config file. nmraoHey I will try to implement this around next week. Will surely let you know about it. Regards Madhusm Re: Centralizing the custom properties defined for Environments. Want to read values from a config file. I will try it out and get back to you. Thanks! Re: Centralizing the custom properties defined for Environments. Want to read values from a config file. Hey nmrao, Thank you for your patience as well. That would be nice if you can share I will give it a try. Because this whole issue is becoming interesting as well as challenging. Re: Centralizing the custom properties defined for Environments. Want to read values from a config file. I have environments based on BO version as well so the combinations are many , maintaining so many properties file will be cumbersome hence one file with all properties and based on the Environment it can select which properties it has to read from the file. Development Env say A but on A I can have A 13.1 , A 13.2 , A 13.3 based on the BO version since the data of the tests and response changes with BO versions customers are using we have to test with different Level Versions as well. Hence we were looking for options using one file based on environment it finds the corresponding values and set it accordingly. But thanks for your solution. I will try to modify some stuffs and try to implement it to make it feassible. Re: Centralizing the custom properties defined for Environments. Want to read values from a config file. Was it working for you earlier? And started failing recently? If so what are the changes? 1. This is the first time we are trying to centralize the custom properties defined for Environments. Our current set up is , we have environments defined and each environments have some Custom properties defined. These values are used in the test step as headers in the request. Now I want the custom properties as mentioned in the second picture to be set from a config file. How can we do that ? - What are the contents in the property file that was being read in the above script? Contents of the property file Env1=Beatrice Env1NodeID=12345687878788777 Env1APIKey=XrHhghghgh686868688 Env2=Anna Env2NodeID=1234568787844545445 Env2APIKey=XrHhghghgh623232868688 . . When I execute the following script as a groovy script to check if the script is right following is the script and its response It also sets the respective values in the Environment - One will only know when tried if certain thing works or not. Many use that when there was no Environment feature exists. Why I insist on Environment because our whole automation regression tests ecosystem is based on that . Now if we change then a lot of changes has to be done everywhere. Nevertheless if that is the only way then probably we have to drop the idea or create a new system. Then that also makes me think that ReadyAPI should design the usage of environment in a better way. We have a inhouse tool created for executing the regression which reads from a config file which has details like the git path , configured environments against which we want to execute the tests, tags etc. Then it picks up the latest tests from gits and executes each project based on the environments and pushes the details to a db from where we create dashboards based on the environments. - Yes, command line execution is the best approach. - It does not matter how many projects or environments if it starts working. - The error log provided earlier says, there is a problem in line 21; the script provided above does not have 21. lines. Unless the information available is full, it is difficult for the remote people. This is the script def props = new Properties(); File propFile = new File('C:/Axon_tests/Config1.properties') props.load(propFile.newDataInputStream()) def env=props.getProperty('Env1') log.info(env) if (env=='Beatrice') { def env1 = context.testCase.testSuite.project.getEnvironmentByName("Beatrice 14.4"); context.testCase.testSuite.project.setActiveEnvironment(env1) def NodeIDvalue=props.getProperty('Env1NodeID') log.info(NodeIDvalue) def APIKeyValue=props.getProperty('Env1APIKey') log.info(APIKeyValue) testRunner.testCase.testSuite.project.setPropertyValue("NodeID", NodeIDvalue) testRunner.testCase.testSuite.project.setPropertyValue("APIKey", APIKeyValue) } And I have attached the error logs again. It enters the loop but does not work on the en -Does it even log the environment name? When I execute the above mentioned groovy script Without the following lines it works, the problem is getEnvironmentByName cannot find the env if executed from the setUp script as it is not able to find the proper context which I mentioned earlier. def env1 = context.testCase.testSuite.project.getEnvironmentByName("Beatrice 14.4"); context.testCase.testSuite.project.setActiveEnvironment(env1) testRunner.testCase.testSuite.project.setPropertyValue("NodeID", NodeIDvalue) testRunner.testCase.testSuite.project.setPropertyValue("APIKey", APIKeyValue) Re: Centralizing the custom properties defined for Environments. Want to read values from a config file. Hi nmrao, My requirement is to use it with environment variable as we have dev, test , Staging and dev environment which executes with different BO release versions combinations. And we have close to 600 ReadyAPI projects which executes every night. And by using the environment defined and tags defined we also control the execution of a test set in different environments. This environment feature helps in maintaining the tests in better way and the execution of tests using the command line version of ReadyAPI. The way you suggested will not work for us. Hence I insisted on using a script which will do the needful. As currently ReadyAPI does not provide an option to do that. Regards Madhusmita Re: Centralizing the custom properties defined for Environments. Want to read values from a config file. I have added this as setup script as I understand setup script is executed at the beginning , the problem I'm trying to solve here is we have env defined but the custom properties values of the env we are trying to set up using a generic file. So in future when there is a change in one property I do not have to visit each project and manually change the values. At the time of execution , first it could do the setup and execute accordingly. The problem I'm facing now is if I use the getEnvironmentbyName from the setupscript it is not able to find the context and throws an exception.