How do you edit a test case once it is recorded?


#1

I do not see a way to edit a test case once it is recorded. Is there a way to do this? Our web pages change often so we need a way to go back and add steps.

 


#2

Hi there,

After recorded script is generated, you are freely in editing the test case through manual view or script view. Just open the test case and edit it with whatever you like.

Thanks


#3

but how do you go about adding new test steps through the recording feature?

thanks


#4

When you mean new steps are we talking about adding more steps to the end or in the middle of the test?

Im guessing your in a situation where changes have been made to your AUT and you need to update exsisting tests. Now if you really dont want to add steps through script mode you can still use the recorder. Just click Yes i do for continue recording. Now any extra steps you did will automatically add to the end of the script so it will be your job to position the steps where you want.


#5

so here is my issue. when I go to click on yes, I do, I get this:
image


#6

and when I try to click on image after that, nothing happens.


#7

Hmm not sure - does anything appear in the Error log under Help?


#8

didn’t even know we could access an error log like that. nice.

here it is. thanks for your help

org.eclipse.jetty.server.Server@4f404d31 - STARTED
+= qtp1099410289{STARTED,8<=8<=200,i=2,q=0} - STARTED
| ± 106 qtp1099410289-106 RUNNABLE @ sun.nio.ch.WindowsSelectorImpl$SubSelector.poll0(Native Method)
| ± 109 qtp1099410289-109 RUNNABLE @ sun.nio.ch.WindowsSelectorImpl$SubSelector.poll0(Native Method)
| ± 102 qtp1099410289-102-acceptor-0@5df36465-ServerConnector@6a1c22ae{HTTP/1.1,[http/1.1]}{0.0.0.0:50001} RUNNABLE @ sun.nio.ch.ServerSocketChannelImpl.accept0(Native Method) prio=3
| ± 108 qtp1099410289-108 TIMED_WAITING @ sun.misc.Unsafe.park(Native Method) IDLE
| ± 104 qtp1099410289-104 RUNNABLE @ sun.nio.ch.WindowsSelectorImpl$SubSelector.poll0(Native Method)
| ± 105 qtp1099410289-105-acceptor-0@4f6091d7-ServerConnector@3f394b28{HTTP/1.1,[http/1.1]}{0.0.0.0:50000} RUNNABLE @ sun.nio.ch.ServerSocketChannelImpl.accept0(Native Method) prio=3
| ± 103 qtp1099410289-103 RUNNABLE @ sun.nio.ch.WindowsSelectorImpl$SubSelector.poll0(Native Method)
| ± 107 qtp1099410289-107 TIMED_WAITING @ sun.misc.Unsafe.park(Native Method) IDLE
+= ServerConnector@3f394b28{HTTP/1.1,[http/1.1]}{0.0.0.0:50000} - STARTED
| +~ org.eclipse.jetty.server.Server@4f404d31 - STARTED
| +~ qtp1099410289{STARTED,8<=8<=200,i=2,q=0} - STARTED
| += org.eclipse.jetty.util.thread.ScheduledExecutorScheduler@725db997 - STARTED
| ± org.eclipse.jetty.io.ArrayByteBufferPool@af3eb06
| += HttpConnectionFactory@4b7fc001[HTTP/1.1] - STARTED
| | ± HttpConfiguration@e7d470a{32768/8192,8192/8192,https://:0,[]}
| += org.eclipse.jetty.server.ServerConnector$ServerConnectorManager@6e52b845 - STARTED
| | += org.eclipse.jetty.io.ManagedSelector@784281c id=0 keys=0 selected=0 id=0
| | | ± sun.nio.ch.WindowsSelectorImpl@23e9e12b keys=0
| | += org.eclipse.jetty.io.ManagedSelector@2dc8146a id=1 keys=0 selected=0 id=1
| | ± sun.nio.ch.WindowsSelectorImpl@70efcbea keys=0
| ± sun.nio.ch.ServerSocketChannelImpl[/0:0:0:0:0:0:0:0:50000]
| ± qtp1099410289-105-acceptor-0@4f6091d7-ServerConnector@3f394b28{HTTP/1.1,[http/1.1]}{0.0.0.0:50000}
+= ServerConnector@6a1c22ae{HTTP/1.1,[http/1.1]}{0.0.0.0:50001} - STARTED
| +~ org.eclipse.jetty.server.Server@4f404d31 - STARTED
| +~ qtp1099410289{STARTED,8<=8<=200,i=2,q=0} - STARTED
| += org.eclipse.jetty.util.thread.ScheduledExecutorScheduler@11f72045 - STARTED
| ± org.eclipse.jetty.io.ArrayByteBufferPool@7a78a609
| += HttpConnectionFactory@71dc3519[HTTP/1.1] - STARTED
| | ± HttpConfiguration@4c94001{32768/8192,8192/8192,https://:0,[]}
| += org.eclipse.jetty.server.ServerConnector$ServerConnectorManager@347f280f - STARTED
| | += org.eclipse.jetty.io.ManagedSelector@16975353 id=0 keys=0 selected=0 id=0
| | | ± sun.nio.ch.WindowsSelectorImpl@60a72f6d keys=0
| | += org.eclipse.jetty.io.ManagedSelector@30f55d55 id=1 keys=0 selected=0 id=1
| | ± sun.nio.ch.WindowsSelectorImpl@6e1d7848 keys=0
| ± sun.nio.ch.ServerSocketChannelImpl[/0:0:0:0:0:0:0:0:50001]
| ± qtp1099410289-102-acceptor-0@5df36465-ServerConnector@6a1c22ae{HTTP/1.1,[http/1.1]}{0.0.0.0:50001}
+= o.e.j.s.ServletContextHandler@652545f3{/,null,AVAILABLE} - STARTED
| += org.eclipse.jetty.server.session.SessionHandler@17a09bb5 - STARTED
| | += org.eclipse.jetty.server.session.HashSessionManager@28572fa6 - STARTED
| | | += org.eclipse.jetty.util.thread.ScheduledExecutorScheduler@64994959 - STARTED
| | | | ± sun.misc.Unsafe.park(Native Method)
| | | | ± java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:215)
| | | | ± java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:2078)
| | | | ± java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:1093)
| | | | ± java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:809)
| | | | ± java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1074)
| | | | ± java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1134)
| | | | ± java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
| | | | ± java.lang.Thread.run(Thread.java:748)
| | | +~ org.eclipse.jetty.server.session.HashSessionIdManager@71cbb965 - STARTED
| | += org.eclipse.jetty.servlet.ServletHandler@6f13de31 - STARTED
| | += Jetty_WebSocketUpgradeFilter - STARTED
| | | ± contextAttributeKey=org.eclipse.jetty.websocket.server.WebSocketUpgradeFilter
| | | ± pathmap=PathMappings[size=1]
| | | ± MappedResource[pathSpec=UriTemplatePathSpec["/",pathDepth=1,group=EXACT],resource=org.eclipse.jetty.websocket.jsr356.server.JsrCreator[metadata=AnnotatedServerEndpointMetadata[endpoint=@javax.websocket.server.ServerEndpoint(encoders=[], configurator=class javax.websocket.server.ServerEndpointConfig$Configurator, decoders=[], subprotocols=[], value=/),config=AnnotatedServerEndpointConfig[endpointClass=class com.kms.katalon.composer.webui.recorder.websocket.RecorderAddonSocket,path=/,decoders=[],encoders=[],subprotocols=[],extensions=[]]]]]
| | ± [/*]/[]==1=>Jetty_WebSocketUpgradeFilter
| | += org.eclipse.jetty.servlet.ServletHandler$Default404Servlet-21c9ecad@73774f0a==org.eclipse.jetty.servlet.ServletHandler$Default404Servlet,-1,false - STARTED
| | ± [/]=>org.eclipse.jetty.servlet.ServletHandler$Default404Servlet-21c9ecad
| += org.eclipse.jetty.websocket.jsr356.server.ServerContainer@22e795a8 - STARTED
| | += org.eclipse.jetty.websocket.client.WebSocketClient@4317e5d0 - STARTED
| | += org.eclipse.jetty.websocket.server.WebSocketServerFactory@6d46b773 - STARTED
| | += org.eclipse.jetty.util.thread.ScheduledExecutorScheduler@7cfd9d55 - STARTED
| | ± org.eclipse.jetty.io.MappedByteBufferPool@22036df5
| |
| +> No ClassLoader
| +> Handler attributes o.e.j.s.ServletContextHandler@652545f3{/,null,AVAILABLE}
| | ± org.eclipse.jetty.server.Executor=qtp1099410289{STARTED,8<=8<=200,i=2,q=0}
| | ± org.eclipse.jetty.websocket.server.WebSocketUpgradeFilter=WebSocketUpgradeFilter[factory=org.eclipse.jetty.websocket.server.WebSocketServerFactory@6d46b773,pathmap=PathMappings[size=1]]
| | ± javax.websocket.server.ServerContainer=org.eclipse.jetty.websocket.jsr356.server.ServerContainer@22e795a8
| +> Context attributes o.e.j.s.ServletContextHandler@652545f3{/,null,AVAILABLE}
| | ± org.eclipse.jetty.util.DecoratedObjectFactory=org.eclipse.jetty.util.DecoratedObjectFactory[decorators=1]
| +> Initparams o.e.j.s.ServletContextHandler@652545f3{/,null,AVAILABLE}
+= org.eclipse.jetty.server.session.HashSessionIdManager@71cbb965 - STARTED
|
+> org.eclipse.osgi.internal.loader.EquinoxClassLoader@6817d4e1[org.eclipse.jetty.server:9.3.9.v20160517(id=271)]
± org.eclipse.osgi.internal.framework.EquinoxContainerAdaptor$1@39cb311d

!ENTRY org.eclipse.e4.ui.workbench 4 0 2019-05-28 12:30:38.293
!MESSAGE
!STACK 0
java.lang.NullPointerException
at com.kms.katalon.composer.webui.recorder.dialog.RecorderDialog.getTestObjectReferences(RecorderDialog.java:1924)
at com.kms.katalon.composer.webui.recorder.dialog.RecorderDialog.getTestObjectReferences(RecorderDialog.java:1982)
at com.kms.katalon.composer.webui.recorder.dialog.RecorderDialog.getTestObjectReferences(RecorderDialog.java:1925)
at com.kms.katalon.composer.webui.recorder.dialog.RecorderDialog.getTestObjectReferences(RecorderDialog.java:1982)
at com.kms.katalon.composer.webui.recorder.dialog.RecorderDialog.getTestObjectReferences(RecorderDialog.java:1925)
at com.kms.katalon.composer.webui.recorder.dialog.RecorderDialog.getTestObjectReferences(RecorderDialog.java:1982)
at com.kms.katalon.composer.webui.recorder.dialog.RecorderDialog.setInput(RecorderDialog.java:1868)
at com.kms.katalon.composer.components.impl.dialogs.AbstractDialog.create(AbstractDialog.java:58)
at org.eclipse.jface.window.Window.open(Window.java:783)
at com.kms.katalon.composer.webui.recorder.handler.RecordHandler.execute(RecordHandler.java:130)
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 org.eclipse.e4.core.internal.di.MethodRequestor.execute(MethodRequestor.java:55)
at org.eclipse.e4.core.internal.di.InjectorImpl.invokeUsingClass(InjectorImpl.java:282)
at org.eclipse.e4.core.internal.di.InjectorImpl.invoke(InjectorImpl.java:264)
at org.eclipse.e4.core.contexts.ContextInjectionFactory.invoke(ContextInjectionFactory.java:132)
at org.eclipse.e4.core.commands.internal.HandlerServiceHandler.execute(HandlerServiceHandler.java:152)
at org.eclipse.core.commands.Command.executeWithChecks(Command.java:494)
at org.eclipse.core.commands.ParameterizedCommand.executeWithChecks(ParameterizedCommand.java:488)
at org.eclipse.e4.core.commands.internal.HandlerServiceImpl.executeHandler(HandlerServiceImpl.java:210)
at org.eclipse.e4.ui.workbench.renderers.swt.HandledContributionItem.executeItem(HandledContributionItem.java:433)
at org.eclipse.e4.ui.workbench.renderers.swt.AbstractContributionItem.handleWidgetSelection(AbstractContributionItem.java:454)
at org.eclipse.e4.ui.workbench.renderers.swt.AbstractContributionItem$3.handleEvent(AbstractContributionItem.java:482)
at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)
at org.eclipse.swt.widgets.Display.sendEvent(Display.java:4418)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1079)
at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:4236)
at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3824)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$4.run(PartRenderingEngine.java:1121)
at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:336)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.run(PartRenderingEngine.java:1022)
at org.eclipse.e4.ui.internal.workbench.E4Workbench.createAndRunUI(E4Workbench.java:150)
at org.eclipse.ui.internal.Workbench$5.run(Workbench.java:693)
at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:336)
at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:610)
at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:148)
at com.kms.katalon.core.application.Application.internalRunGUI(Application.java:123)
at com.kms.katalon.core.application.Application.runGUI(Application.java:113)
at com.kms.katalon.core.application.Application.start(Application.java:71)
at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:134)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:104)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:388)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:243)
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 org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:673)
at org.eclipse.equinox.launcher.Main.basicRun(Main.java:610)
at org.eclipse.equinox.launcher.Main.run(Main.java:1519)


#9

This is the point at which we ask for some proper help as this log means nothing to me :rofl:
@duyluong @devalex88


#10

Hi @ddicocco

I noticed in the error log there’s a null point exception being thrown when reading Test Object References. A possible cause would be that the test objects of the test case have been removed or moved to another physical location. Can you share with us the screenshot of the test case in script mode along with the verification that the test objects indeed exist and are correctly referenced in the test case ?

Cheers !


#11

that was the problem. thank you