Vugen is not waiting for the response of a request - vugen

I have recorded the scipt and there is one web_custom_request() in that script which is sending the request but do not wait for the response and Vugen hits the next request. Due to which next step of the script are failing.
I have done all corelation also if sometime the response come in within the time that response is ok.
This is one search request which is hit and n return it gives the result of that search,.
How can i make this step wait until it get the actual response.
Below is the code:
web_custom_request("saw.dll_8",
"URL={URL}",
"Method=POST",
"TargetFrame=",
"Resource=0",
"RecContentType=text/plain",
"Referer={URL}",
"Snapshot=t345.inf",
"Mode=HTML",
"Body=ViewState={ViewState_1}&Done=Dashboard%26PortalPath%3D%252Fshared%252FPayment%2520Search%252F_portal%252FPayment%2520Search%2520Tool%26Page%3DSearch%2520Page%26ViewState%3D{ViewState_1}&ClientStateXml=%3Csawst%3AenvState%20xmlns%3Asawst%3D%22com.siebel.analytics.web%2Fstate%2Fv1%22%20xmlns%3Axsi%3D%22http%3A%2F%2Fwww.w3.org%2F2001%2FXMLSchema-instance%22%20xmlVersion%3D%22200811100%22%3E%3Csawst%3Acontainer%20cid%3D%22d%3Adashboard%22%20xsi%3Atype%3D%22sawst%3AtopLevelStateContainer%22%20persistPageState%3D%22true%22%20links%3D%22fd%22%3E%3Csawst%3Acontainer%20cid%3D%22p%3A{CorrelationParameter}%22%20xsi%3Atype%3D%22sawst%3Apage%22%20firstVisit%3D%22true%22%3E%3Csawst%3Acontainer%20cid%3D%22s%3A{CorrelationParameter_1}%22%20xsi%3Atype%3D%22sawst%3Asection%22%20rendered%3D%22true%22%3E%3Csawst%3Acontainer%20cid%3D%22g%3A{CorrelationParameter_2}%22%20xsi%3Atype%3D%22sawst%3Adashprompt%22%20links%3D%22-%22%20promptAutoCompleteState%3D%22off%22%2F%3E%3C%2Fsawst%3Acontainer%3E%3Csawst%3Acontainer%20cid%3D%22"
"r%3A{CorrelationParameter_3}%22%20xsi%3Atype%3D%22sawst%3Areport%22%20links%3D%22fd%22%20defaultView%3D%22compoundView!1%22%20searchId%3D%22{CorrelationParameter_4}%22%20folder%3D%22%2Fshared%2FPayment%20Search%2FReports%22%20itemName%3D%22Search%20output%22%2F%3E%3Csawst%3Acontainer%20cid%3D%22f%3Adpstate%22%20xsi%3Atype%3D%22sawst%3Adashpromptstate%22%20statepoolId%3D%22{CorrelationParameter_12}%22%2F%3E%3Csawst%3Acontainer%20cid%3D%22s%3A{CorrelationParameter_6}%22%20xsi%3Atype%3D%22sawst%3Asection%22%20rendered%3D%22true%22%3E%3Csawst%3Acontainer%20cid%3D%22n%3Acondition%22%20xsi%3Atype%3D%22sawst%3Anavigation%22%20conditionId%3D%22{CorrelationParameter_13}%22%20conditionEvalStatus%3D%22complete%22%20conditionMet%3D%22true%22%3E%3Csawst%3Acontainer%20cid%3D%22r%3A{CorrelationParameter_8}%22%20xsi%3Atype%3D%22sawst%3A{CorrelationParameter_8}%22%20links%3D%22bfd%22%20defaultView%3D%22compoundView!1%22%20searchId%3D%22{CorrelationParameter_14}%22%20folder%3D%22%2Fshared%2FPayment%20Search%2FReports%22%20it"
"emName%3D%22Condition_noprompt_set%22%2F%3E%3C%2Fsawst%3Acontainer%3E%3C%2Fsawst%3Acontainer%3E%3Csawst%3Acontainer%20cid%3D%22s%3A{CorrelationParameter_10}%22%20xsi%3Atype%3D%22sawst%3Asection%22%20rendered%3D%22true%22%3E%3Csawst%3Acontainer%20cid%3D%22n%3Acondition%22%20xsi%3Atype%3D%22sawst%3Anavigation%22%20conditionId%3D%22{CorrelationParameter_13}%22%20conditionEvalStatus%3D%22complete%22%20conditionMet%3D%22false%22%3E%3Csawst%3Acontainer%20cid%3D%22r%3A{CorrelationParameter_8}%22%20xsi%3Atype%3D%22sawst%3A{CorrelationParameter_8}%22%20links%3D%22bfd%22%20defaultView%3D%22compoundView!1%22%20searchId%3D%22{CorrelationParameter_14}%22%20folder%3D%22%2Fshared%2FPayment%20Search%2FReports%22%20itemName%3D%22Condition_noprompt_set%22%2F%3E%3C%2Fsawst%3Acontainer%3E%3C%2Fsawst%3Acontainer%3E%3Csawst%3Acontainer%20cid%3D%22s%3A{CorrelationParameter_11}%22%20xsi%3Atype%3D%22sawst%3Asection%22%20rendered%3D%22true%22%2F%3E%3C%2Fsawst%3Acontainer%3E%3C%2Fsawst%3Acontainer%3E%3C%2Fsawst%3AenvState%3E&fmapId={"
"fmapId}&reloadTargets=d%3Adashboard~p%3A{CorrelationParameter}~r%3A{CorrelationParameter_3}&DashboardCaption=Payment%20Search%20Tool&Page=Search%20Page&PageDelayedState=NotDelayed&PortalPath=%2Fshared%2FPayment%20Search%2F_portal%2FPayment%20Search%20Tool&Action=&ViewID=&IgnoreBypassCacheOption=ignoreBypassCache&_scid=&icharset=utf-8",
EXTRARES,
"URL=res/v-qTiUEGoCy*s/sk_Alta/catalog/exporttopdf_ena.png", "Referer={URL}", ENDITEM,
"URL=res/v-qTiUEGoCy*s/sk_Alta/catalog/exporttoppt_ena.png", "Referer={URL}", ENDITEM,
"URL=res/v-qTiUEGoCy*s/sk_Alta/catalog/exporttomhtml_ena.png", "Referer={URL}", ENDITEM,
"URL=res/v-qTiUEGoCy*s/sk_Alta/catalog/exporttocsv_ena.png", "Referer={URL}", ENDITEM,
"URL=res/v-qTiUEGoCy*s/sk_Alta/common/menurtarrow.gif", "Referer={URL}", ENDITEM,
"URL=res/v-qTiUEGoCy*s/sk_Alta/catalog/exporttoxml_ena.png", "Referer={URL}", ENDITEM,
"URL=saw.dll?loadViewMenuModel", "Referer={URL}", ENDITEM,
"URL=saw.dll/views/pivot/obips.gridview.xml?fmapId={fmapId}", "Referer={URL}", ENDITEM,
LAST);
Thanks and Regards
Nikhil Kamboj

Just to make this a bit easier to read...I am counting over a dozen correlated entities. Are you checking for expected results on each and every step of your script (testing 101 concept)? If not, then it would be very easy for this script to come off of the rails with so many correlations. All it would take is just one value to be off due to an unexpected result which was not handled and this request would likely respond inappropriately,
What is your depth of experience with Siebel and LR? This is a non trivial interface to test
web_custom_request("saw.dll_8",
"URL={URL}",
"Method=POST",
"TargetFrame=",
"Resource=0",
"RecContentType=text/plain",
"Referer={URL}",
"Snapshot=t345.inf",
"Mode=HTML",
"Body=ViewState={ViewState_1}
&Done=Dashboard
&PortalPath=/shared/Payment Search/_portal/Payment Search Tool
&Page=Search Page&ViewState={ViewState_1}
&ClientStateXml=
<sawst:envState
xmlns:sawst="com.siebel.analytics.web/state/v1"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlVersion="200811100">
<sawst:container
cid="d:dashboard"
xsi:type="sawst:topLevelStateContainer"
persistPageState="true"
links="fd">
<sawst:container
cid="p:{CorrelationParameter}"
xsi:type="sawst:page"
firstVisit="true">
<sawst:container
cid="s:{CorrelationParameter_1}"
xsi:type="sawst:section"
rendered="true">
<sawst:container
cid="g:{CorrelationParameter_2}"
xsi:type="sawst:dashprompt"
links="-" promptAutoCompleteState="off"/>
</sawst:container>
<sawst:container
cid="r:{CorrelationParameter_3}"
xsi:type="sawst:report"
links="fd"
defaultView="compoundView!1"
searchId="{CorrelationParameter_4}"
folder="/shared/Payment Search/Reports"
itemName="Search output"/>
<sawst:container
cid="f:dpstate"
xsi:type="sawst:dashpromptstate"
statepoolId="{CorrelationParameter_12}"/>
<sawst:container
cid="s:{CorrelationParameter_6}"
xsi:type="sawst:section"
rendered="true">
<sawst:container
cid="n:condition"
xsi:type="sawst:navigation"
conditionId="{CorrelationParameter_13}"
conditionEvalStatus="complete"
conditionMet="true">
<sawst:container
cid="r:{CorrelationParameter_8}"
xsi:type="sawst:{CorrelationParameter_8}"
links="bfd"
defaultView="compoundView!1"
searchId="{CorrelationParameter_14}"
folder="/shared/Payment Search/Reports"
itemName="Condition_noprompt_set"/>
</sawst:container></sawst:container>
<sawst:container
cid="s:{CorrelationParameter_10}"
xsi:type="sawst:section"
rendered="true">
<sawst:container
cid="n:condition"
xsi:type="sawst:navigation"
conditionId="{CorrelationParameter_13}"
conditionEvalStatus="complete" conditionMet="false">
<sawst:container cid="r:{CorrelationParameter_8}"
xsi:type="sawst:{CorrelationParameter_8}"
links="bfd"
defaultView="compoundView!1"
searchId="{CorrelationParameter_14}"
folder="/shared/Payment Search/Reports"
itemName="Condition_noprompt_set"/>
</sawst:container></sawst:container>
<sawst:container
cid="s:{CorrelationParameter_11}"
xsi:type="sawst:section"
rendered="true"/>
</sawst:container></sawst:container>
</sawst:envState>
&fmapId={fmapId}
&reloadTargets=d:dashboard~p:{CorrelationParameter}~r:{CorrelationParameter_3}
&DashboardCaption=Payment Search Tool
&Page=Search Page
&PageDelayedState=NotDelayed
&PortalPath=/shared/Payment Search/_portal/Payment Search Tool
&Action=
&ViewID=
&IgnoreBypassCacheOption=ignoreBypassCache
&_scid=
&icharset=utf-8",
EXTRARES,
/**/
LAST);

Have you tried re-executing the same request until you got the desired response.
Something like below:
x:
web_reg_find("Text=<Some Response>",SaveCount=count);
web_custom_request("saw.dll_8",
.., LAST);
i = atoi(lr_eval_string("{count}"));
if (i == 0)
goto x;
else
continue;
*Provide if same web_custom_request can be executed multiple times.

Related

Converting Cypher queries to gremlin

I am converting the cypher queries to gremlin with the help of Cypher for gremlin project.
Followed all the steps to configure it but facing the below issue when running the cypher queries.
301195 [gremlin-server-worker-1] INFO org.opencypher.gremlin.server.op.cypher.CypherOpProcessor - Cypher: MATCH (n) RETURN n
301209 [gremlin-server-worker-1] INFO org.opencypher.gremlin.server.op.cypher.CypherOpProcessor - Gremlin: g.V().project('n').by(__.valueMap().with('~tinkerpop.valueMap.tokens'))
301209 [gremlin-server-worker-1] WARN io.netty.channel.DefaultChannelPipeline - An exceptionCaught() event was fired, and it reached at the tail of the pipeline. It usually means the last handler in the pipeline did not handle the exception.
java.lang.NoSuchFieldError: scriptEvaluationTimeout
at org.opencypher.gremlin.server.op.cypher.CypherOpProcessor.handleIterator(CypherOpProcessor.java:197)
at org.opencypher.gremlin.server.op.cypher.CypherOpProcessor.lambda$evalCypher$0(CypherOpProcessor.java:132)
at org.opencypher.gremlin.server.op.cypher.CypherOpProcessor.inTransaction(CypherOpProcessor.java:146)
at org.opencypher.gremlin.server.op.cypher.CypherOpProcessor.evalCypher(CypherOpProcessor.java:132)
at org.apache.tinkerpop.gremlin.server.handler.OpExecutorHandler.channelRead0(OpExecutorHandler.java:67)
at org.apache.tinkerpop.gremlin.server.handler.OpExecutorHandler.channelRead0(OpExecutorHandler.java:43)
at io.netty.channel.SimpleChannelInboundHandler.channelRead(SimpleChannelInboundHandler.java:99)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365)
at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357)
at io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:103)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365)
at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357)
at io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:103)
Any help is appreciated if anyone knows or have worked on project
Looking at the queries (both the Cypher and Gremlin) as well as the error, this appears to be an issue where the query timed out trying to return an answer and the Cypher for Gremlin library does not handle it gracefully.
More importantly, the query you are trying to run is not a good query to experiment on, as it is the equivalent of asking an RDBMS to return all rows from all tables. Even with a small graph and a fast database this query will take a while to return, I suggest you add some filtering criteria or a limit such as these:
MATCH (n) RETURN n LIMIT 10
//substitute appropriate labels and property names
MATCH (n:foo) WHERE n.name='bar' RETURN n

Can I run more than one server side experiment at the same time on Google Optimize?

Is it ok to run more than one experiment at the same time?
Is it valid to emit more than one line for experiment.variant in JS code targeting Google Optimize?
For example:
-- first test
ga('set', 'exp', 'ExperimentA.Variant1');
-- second test
ga('set', 'exp', 'ExperimentB.Variant1');
Clearly, I can't assign exp twice.
At the same time calling
ga('send', 'pageview');
after each set would be wrong too since it would result in GA counting the page twice.
Can someone help?

Bit rate error when trying to dial out to an ISDN line using Polycom XML API

I am having a problem connecting to an ISDN line using Polycom's XML API on an RMX_2000. Below is the request I am sending, and the response. I can do the same action from the RMX Manager, for the same number, in the same conference, and it works. When I trace the XML from the RMX Manager, I get an ADD_PARTY request that looks exactly like my constructed request, except with a lot more elements. I've reviewed and don't see any that seem like they could be relevant, and I am loath to manually code every single element, knowing that it is a long shot that it will even help. The same request (variant) works fine for IP and registered number requests, but no matter what I do, always get the bit rate error below. Can anyone tell me what I am doing wrong?
<TRANS_CONF_1>
<TRANS_COMMON_PARAMS>
<MCU_TOKEN>304</MCU_TOKEN>
<MCU_USER_TOKEN>304</MCU_USER_TOKEN>
<MESSAGE_ID>1</MESSAGE_ID>
</TRANS_COMMON_PARAMS>
<ACTION>
<ADD_PARTY>
<ID>18466</ID>
<PARTY>
<ID>0</ID>
<NAME>isdn</NAME>
<PHONE_LIST>
<PHONE1>12345678910</PHONE1>
</PHONE_LIST>
<INTERFACE>isdn</INTERFACE>
<CONNECTION>dial_out</CONNECTION>
<MEET_ME_METHOD>party</MEET_ME_METHOD>
<NUM_TYPE>taken_from_service</NUM_TYPE>
<MULTI_RATE>auto</MULTI_RATE>
<ALIAS>
<NAME>12345678910</NAME>
<ALIAS_TYPE>323_id</ALIAS_TYPE>
</ALIAS>
<VIDEO_BIT_RATE>automatic</VIDEO_BIT_RATE>
<ENHANCED_VIDEO>false</ENHANCED_VIDEO>
<UNDEFINED>false</UNDEFINED>
</PARTY>
</ADD_PARTY>
</ACTION>
</TRANS_CONF_1>
Here is the response:
<RESPONSE_TRANS_CONF>
<RETURN_STATUS>
<ID>1015</ID>
<DESCRIPTION>Conference bit rate must be set to a minimum of 128Kbps to enable ISDN participant connection</DESCRIPTION>
<YOUR_TOKEN1>0</YOUR_TOKEN1>
<YOUR_TOKEN2>0</YOUR_TOKEN2>
<MESSAGE_ID>1</MESSAGE_ID>
<DESCRIPTION_EX></DESCRIPTION_EX>
</RETURN_STATUS>
<ACTION>
<ADD_PARTY/>
</ACTION>
</RESPONSE_TRANS_CONF>
Thanks to a little help from someone at Polycom, I found out that the following node is required for this:
auto
I added that to the PARTY node, and now all is well.
After alot of troubleshooting and wiresharking on this error I found a combination of 2 properties being the issue
Reservation object needs
<TRANSFER_RATE>384</TRANSFER_RATE>
Party object needs
<NET_CHANNEL_NUMBER>auto</NET_CHANNEL_NUMBER>

Load Runner Session ID Changes Indefinitely

Good day
I'm trying to perform load testing with LoadRunner 11. Here's an issue:
I've got automatically generated script after actions recording
Need to catch Session ID. I do it with web_reg_save_param() in the next way:
web_reg_save_param("S_ID",
"LB=Set-Cookie: JSESSIONID=",
"RB=; Path=/app/;",
LAST);
web_add_cookie("S_ID; DOMAIN={host}");
I catch ID from the response (Tree View):
D2B6F5B05A1366C395F8E86D8212F324
Compare it with Replay Log and see:
"S_ID = 75C78912AE78D26BDBDE73EBD9ADB510".
Compare 2 IDs above with the next request ID and see 3rd ID (Tree View):
80FE367101229FA34EB6429F4822E595
Why do I have 3 different IDs?
Let me know if I have to provide extra information.
You should Use(Search=All) below Code. Provided your Right and left boundary is correct:
web_reg_save_param("S_ID",
"LB=Set-Cookie: JSESSIONID=",
"RB=; Path=/app/;",
"Search=All",
LAST);
web_add_cookie("{S_ID}; DOMAIN={host}");
For Details refer HP Mannual for web_reg_save_param function.
I do not see what the conflict or controversy is here. Yes, items related to state or session will definitely change from user to user, one recording session to the next. They may even change from one request to the next. You may need to record several times to identify the change and use pattern for when you need to collect and when you need to reuse the collected data from a response in a subsequent request.
Take a listen to this podcast. It should help
http://www.perfbytes.com/dynamic-data-correlation

Read Timed Out : sychronous query via Bigquery java API

We are using the big query JAVA API to retrieve results for our analytics reporting frontend. We are trying to retrieve the results synchronously. A lot of times we get Read timed out error, even before the query timeout as specified in the parameters. Here's the stack trace for a sample fail:
java.net.SocketTimeoutException: Read timed out
at java.net.SocketInputStream.socketRead0(Native Method)
at java.net.SocketInputStream.read(SocketInputStream.java:129)
at com.sun.net.ssl.internal.ssl.InputRecord.readFully(InputRecord.java:293)
at com.sun.net.ssl.internal.ssl.InputRecord.read(InputRecord.java:331)
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:830)
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.readDataRecord(SSLSocketImpl.java:787)
at com.sun.net.ssl.internal.ssl.AppInputStream.read(AppInputStream.java:75)
at java.io.BufferedInputStream.fill(BufferedInputStream.java:218)
at java.io.BufferedInputStream.read1(BufferedInputStream.java:258)
at java.io.BufferedInputStream.read(BufferedInputStream.java:317)
at sun.net.www.http.HttpClient.parseHTTPHeader(HttpClient.java:697)
at sun.net.www.http.HttpClient.parseHTTP(HttpClient.java:640)
at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1195)
at java.net.HttpURLConnection.getResponseCode(HttpURLConnection.java:379)
at sun.net.www.protocol.https.HttpsURLConnectionImpl.getResponseCode(HttpsURLConnectionImpl.java:318)
at com.google.api.client.http.javanet.NetHttpResponse.<init>(NetHttpResponse.java:36)
at com.google.api.client.http.javanet.NetHttpRequest.execute(NetHttpRequest.java:94)
at com.google.api.client.http.HttpRequest.execute(HttpRequest.java:965)
at com.google.api.client.googleapis.services.AbstractGoogleClientRequest.executeUnparsed(AbstractGoogleClientRequest.java:410)
at com.google.api.client.googleapis.services.AbstractGoogleClientRequest.executeUnparsed(AbstractGoogleClientRequest.java:343)
at com.google.api.client.googleapis.services.AbstractGoogleClientRequest.execute(AbstractGoogleClientRequest.java:460)
I am not able to retrieve the job id of the resulting job as the error occurs before I can retrieve a JobReference object. The timeout specified in this case was 300 sec. The query failed well before it. The query contains three JOIN's and several GROUP EACH BY clauses. Can you suggest us a possible way to debug this ?
Adding the code snippet:
QueryRequest queryInfo = new QueryRequest().setQuery(sql)
.setTimeoutMs(timeOutInSec * 1000);
// get project id
BQGameConnectionDetails details = Config
.getBQConnectionDetails(gameId);
String projectId = details.getProjectId();
Bigquery.Jobs.Query queryRequest = getInstance(gameId).jobs()
.query(projectId, queryInfo);
QueryResponse response = queryRequest.execute();
There are two timeouts involved. The first timeout is in the HTTP request you've sent to bigquery. The second is in the bigquery request timeout. It sounds like you've set the latter to a large value, but the former is likely the timeout that you're hitting. If the HTTP request times out before the BigQuery timeout, the connection will be closed and BigQuery won't have a chance to respond.
There are two options: First is to increase the HTTP request timeout (which depends on the libraries you're using, but this page here may be helpful). The second is to decrease the bigquery timeout. This means you'll have to use jobs.getQueryResults() to read the actual results, but this is a more robust method because it doesn't matter how long the query takes, you can just call getQueryResults() in a loop. I would post a link to a good java sample that does this, but I don't know that one exists, unfortunately.