Performance Testing in BI 4.1
I’ve recently spent a bunch of time getting to know BI 4.1, and part of that process is taking it for the proverbial test drive in terms of performance. To do this, I always use Apache JMeter since it is free and a great overall product. I’ve been documenting the process for designing performance and regression tests on BI 4.0 on the SCN Wiki for some time, but with the popularity of this topic, along with the added exposure gained in my recent ASUG webcast on automated regression testing, I haven’t made it as far as I would like in the process.
Due to challenges and other commitments, I just got around to creating a test plan for BI 4.1. The test plan invokes 3 different BI clients … Web Intelligence, Explorer, and Analysis for OLAP, and all get backend data from HANA. I’ve uploaded the JMX code for this test plan on the wiki:
http://wiki.sdn.sap.com/wiki/display/BOBJ/4.1+Mixed+Test+Plan
And this represents a new process for me that should be sustainable in the long-term. It was taking such a time commitment to exhaustively document every step in test plan creation that I found myself with dozens of functional test plans, but only a few of which were documented for use. Therefore, I propose to put all of my test plans on the wiki as source code. You can simply copy and paste the code into a file that you save with a .jmx extension, and then you’ll be able to open it directly in JMeter. I will use this space as a means to blog about the test plans, and explain the key components you’ll need to customize to use them in your own environment. I’ll look forward to your feedback on whether or not this process works and can fine tune as necessary.
You can familiarize yourself with JMeter and create your first test plan (exhaustively documented) here:
http://wiki.sdn.sap.com/wiki/display/BOBJ/Creating+your+First+Test+Plan
BI 4.1 Mixed Test Plan
First, in order to open this test plan, which uses JMeter plugins to instrument system resources such as CPU and Memory, you must follow the instructions found here:
Once you have added these plugins to the JMeter lib/ext directory you can open the test plan and see this goodness!
The test plan is broken down as follows:
1. Thread Group configured (by default) for 100 users and a 300 second (5 minute) ramp-up time. This means that after 5 minutes, 100 users will actively be performing BI workflows on your server.
2. Each user logs on to the environment, as controlled by the requests in the Logon transaction controller.
3. Each user opens and refreshes a Web Intelligence report.
4. Each user opens a previously saved Exploration View Set.
5. Each user creates a new Analysis Workspace, selecting a connection, adding a dimension, and inserting a chart.
6. Each user logs off of the system.
Unique users are leveraged for each thread and that process is configured in the BI Users CSV config. At the end of each transaction controller is a Uniform Random Timer that causes a delay between 100 ms and 2000 ms (2 seconds) between each request. This emulates a business user performing some analysis and keeps the requests from flooding the system. The timer duration is not included in the results so we get a pure view of how long each operation takes.
Breaking it Down
I cover the Logon/Logoff methods in the wiki page I provided above, but logging onto BI 4.1 requires one slight alteration from BI 4.0.
BI 4.1 uses a Java Server Face to process the BI Platform logon so it is necessary to pass a parameter called com.sun.faces.VIEW to the logon.faces request. I struggled with this initially and discovered that if you don’t pass the value the logon page simply gets re-postedand you never get a session!
Here is what the regular expression extractor should look like:
We need to pass this value into the following logon.faces request:
From here I will just talk about the individual BI clients. Web Intelligence gets to go first by virtue of its position in the test plan:
Web Intelligence
Regular expression extractors are attached to 3 samplers in the Web Intelligence workflow. The values extracted are:
1. The SI_ID of the user’s Favorites Folder
2. The sEntry representing the Webi document state when the report is first opened.
3. A second sEntry value representing the Webi document state when the report is refreshed.
Once those values are extracted they should be attached to the appropriate Webi samplers as JMeter variables. JMeter variables take the form ${fav}, ${sEntry}, etc.
Since JMeter test plans are plain text it is easy to replace static strings such as an sEntry (sEntry might take the format we0001000078432c722f78)
Refer to this new SCN Document for details on how to do the text replacement!
The result of the Web Intelligence workflow looks like this:
In the interest of length of this article, I’ll wrap up this post for now and follow up with another post next week to articulate the Explorer and Analysis OLAP workflows. I’m really excited to be performance testing with BI 4.1 … my initial tests show it performs really well and I’ll look forward to sharing more of these details with you.
Would you consider moving this to the BI Platform space so it gains more visibility? Select Actions > Move and type in BI Platform.
Thanks for the feedback Tammy ... it has been moved.
This is great Jim!
Great post , thanks for shared !
It's interesting article 😉
5*****!
Good stuff! Look forward to trying it on my deployments in the future!
Good Job and Thanks for sharing!
This work that you and Henry and Toby and others are doing is empowering Administrators and Consultants like never before. We are all thankful for that.
I am creating my own plan here, and even after capturing the com.sun.faces.VIEW value (I can see the variable value in the Debug Sampler result), the extractor for the bttoken continues to fail (the bttoken value always returns the default value).
I'm running it against BI 4.1, and capturing the VIEW value at the first occurrence of .../logon.faces and the BTTOKEN value after the second appearance of .../logon.faces.
Please let me know if you have any pointers/suggestions.
*** EDIT: solved ***
This is what I was doing wrong:
In BI4.0, the BTTOKEN post-processing extractor regular expression is:
bttoken=(.+?)&
In BI 4.1, one needs to use this expression instead:
bttoken=(.+?)"
I will leave this comment in case anyone has the same issue.
Thanks,
Francisco
James, it's a great job you're doing here. Thanks a lot.
I was wondering if JMeter could be used for testing mobile access performance.
Will for example an IPAD emulator be recognised by the http proxy?
Do you plan to make & share such tests?
Other question, in my test plan i would like to simulate webi document creation with the applet. Will there be specific parameters to catch in that case?
thanks again
Xavier Bry
Hi Xavier,
Thanks for the comment and the positive feedback.
You ask some very relevant questions so let me try to answer them as best I can:
Furthermore, JMeter is not a browser/client itself, so client performance of the JRP would not truly be emulated, and I suspect that server impact of using one report creation tool vs. another (say DHTML or RESTful Web Service) is minimal. My suggestion would be to create test plans that simulate report creation using either the DHTML client or the new (4.1 SP2) RESTful Web Service API. I would be happy to consider both of those use cases for future test plan creation.
Regards,
Jim
A very interesting manner of testing the business environment. It definitely helps / ideas for everyone to perform their own individual testing activties.
Dear James,
Both the articles (BI4 & BI4.1 webi) on performance testing are Outstanding and leaves no doubt for the developer/tester.!!! I was able to execute the BI4.1 Webi performance testing through JMeter successfully.
But recently I have been struggling with the Performance testing (using JMeter) of a BO4.1 webi report having prompts in a report query. In the debug sampler bttoken, sEntry are correctly populated but sEntry2 is populated as NONE.
Do we need to add a Regular Expression Extractor for prompt also? Can you please provide help on this.
Regards,
Pankaj
Hi Pankaj,
Thanks for the feedback.
Yes the trick with prompts is that they have a bit of dynamic data you have to extract as well. I recommend using Fiddler/HTTPWatch to capture you performing the same steps you used in your JMeter test plan. You can then examine the dynamic methods and look for the parameter you need to extract. Feel free to post your findings here and we can look together.
Cheers,
Jim
Hi James,
Thanks once again and appreciate your quick reply. Initially I wasn't using fiddler but after you suggested I was able to trace the dynamic parameter for prompts with the help of fiddler. The test was successful for the report with prompts !!
The findings are:
1) I have removed Regular Expression Extractor from refreshDocument.jsp
2) And the Regular Expression Extractor is added for processPrompts.jsp (***sEntry2 Extractor**).
One thing strange I noticed is that, the viewer/report.jsp returns only data in the report tables, and graphs are not displayed in JMeter. Is that JMeter don't return/display graphs?
Can you please share your thoughts on this.
Also, can we prepare and run a test for Xcelsius dashboards? If possible can you shed a light on this briefly.
Thanks & Regards,
Pankaj
Pankaj,
Charts are returned by a different URL. I cover the use of getImage.jsp in BI4 Web Intelligence Performance Test with JMeter
Please refer to that document for steps on retrieving images from Web Intelligence documents.
As for Dashboards (Xcelsius), I have done some work there but haven't had an opportunity to document it exhaustively as with these others. I will load a JMeter test plan to the Wiki this week that you can look at to get you started though.
Thanks,
Jim
Thanks for the reply James.
Actually I am still stuck at the graph part (pie-chart, column chart) in the report.
After running the JMeter test plan, none of the viewer/getImage.jsp page is returning/displaying the graphs present in the report.
But when the mode in View Results Tree is changed from HTML to HTML (download resources), apart from the table data, viewer/viewReport.jsp displays the text like Pie Chart, Column Chart with a symbol of image. I have attached a screen shot for your reference.
I am unable to trace where its going wrong.
Hi Pankaj,
This is expected behavior. The images should actually be attached to the response body of the getImage.jsp methods. When you enable HTML (downloaded resources) it instructs JMeter to follow embedded links to retrieve resources included in the HTML. You can enable/disable this setting on your request samplers as well if desired.
Jim
Hi James/Pankaj,
Please let me know if we need to repeat the workflow in IE to extratct sEntry for processprompts.jsp
I did the same and got the sEntry value however I am not sure if this value can be used in my existing test plan in Jmeter as that was created based on a previous workflow.
@James: Thanks for this wonderful article!
I have crated a test plan on my client machine on JMeter 2.7 however I do not see jp@gc - PerfMon Metrics Collector in the list. Is there any addon I need to install.
Also do I need to mention my BO CMS server name and ports to capture the performance on the server from client.
Cheers,
Anshul
Hi Anshul,
It is necessary to extract a new sEntry every time the Web Intelligence document state changes. For example, open a webi doc (sEntry 1), refresh a webi doc (sEntry 2), drill in a webi doc (sEntry 3), etc. When processing prompts it will also be necessary to pass a distinct sEntry. Use a product like Fiddler to identify just what the functional dynamic data should look like.
As for JMeter resources, use this resource to find and configure them:
Integration of Server Resource Monitoring with JMeter Plugins
Cheers,
Jim
Hi James,
I am trying to run your script to refresh Webi report but get error when executing /BOE/portal/1408041430/InfoViewAppActions/ajaxUre/ajaxRequest and in the sample result it says response code is 403 and in Response data : boetrustguard.TokenCreationFailedMessag
We are running BO 4.1, split deployment (apache + Tomcat) in Windows 2008 environment.
SSO is configured but I am using http://servername/BOE/BI/logonNoSso.jsp to capture the logon details.
Looking forward for your early response.
Thanks
Ayub
Ayub,
This typically occurs because the bttoken value isn't passed as part of the request. Please confirm the request header / request body contain this value, and that it is the same one being passed in the prior requests.
I also would expect the response body to contain a full stack trace for the boetrustguard exception. Please provide it.
Thanks,
Jim
Hi James,
Many thanks for your prompt response. Please find below the text:
Sampler Result:
Thread Name: 4.1 Performance Test 1-1
Sample Start: 2014-08-27 14:39:54 BST
Load time: 78
Latency: 78
Size in bytes: 889
Headers size in bytes: 331
Body size in bytes: 558
Sample Count: 1
Error Count: 1
Response code: 403
Response message: Forbidden
Response headers:
HTTP/1.1 403 Forbidden
Date: Wed, 27 Aug 2014 13:39:54 GMT
Server: Apache/2.4.9 (Win64) OpenSSL/1.0.1h mod_jk/1.2.40
X-UA-Compatible: IE=edge,requiresActiveX=true
Vary: Accept-Encoding
Content-Encoding: gzip
Content-Length: 558
Keep-Alive: timeout=5, max=90
Connection: Keep-Alive
Content-Type: text/html;charset=utf-8
HTTPSampleResult fields:
ContentType: text/html;charset=utf-8
DataEncoding: utf-8
Request:
POST http://server/BOE/portal/1408041430/InfoViewAppActions/ajaxUre/ajaxRequest
POST data:
ureId=%2FBOE%2Fportal%2F1408041430%2FInfoViewAppActions%2Fjsp%2FInfoView_Listing%2FinfoviewListing.faces_ListingURE_InfoViewListing&bttoken=MDAwREAxREkzRDNKQFdmbUtRMz5WUTo9QV9tSlEyNTAEQ%26skipSso%3Dtrue&action=openAccordionDrawer&id=0&nodeSelection=&com.businessobjects.client.concurrent.sessionCounter=0&com.businessobjects.client.concurrent.requestCounter=0
Cookie Data:
JSESSIONID=5182EC62D8A8228FD96CC2C7C2FC7442; InfoViewPLATFORMSVC_COOKIE_CMS=server%3A6400; InfoViewPLATFORMSVC_COOKIE_USR=administrator; InfoViewPLATFORMSVC_COOKIE_AUTH=secEnterprise
Request Headers:
Connection: keep-alive
Content-Type: application/x-www-form-urlencoded; charset=UTF-8
Accept-Language: en-us
Accept: */*
User-Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0)
Accept-Encoding: gzip, deflate
Referer: http://server/BOE/portal/1408041430/InfoViewAppActions/jsp/InfoView_Listing/infoviewListing.faces?cafWebSesInit=true&bttoken=MDAwREAxREkzRDNKQFdmbUtRMz5WUTo9QV9tSlEyNTAEQ&skipSso=true&bttoken=MDAwREAxREkzRDNKQFdmbUtRMz5WUTo9QV9tSlEyNTAEQ&skipSso=true&appKind=InfoView&service=%2FInfoView%2Fcommon%2FappService.do&loc=en&pvl=en_US&ctx=standalone&actId=4301&objIds=12&containerId=&pref=maxOpageUt%3D200%3BmaxOpageC%3D10%3Btz%3DAmerica%2FLos_Angeles%3BmUnit%3Dinch%3BshowFilters%3Dtrue%3BsmtpFrom%3Dtrue%3BpromptForUnsavedData%3Dtrue%3B
X-Requested-With: XMLHttpRequest
Pragma: no-cache
Content-Length: 359
Host: server
Response data:
<html><head><title>Apache Tomcat/7.0.32 - Error report</title><style><!--H1 {font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;font-size:22px;} H2 {font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;font-size:16px;} H3 {font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;font-size:14px;} BODY {font-family:Tahoma,Arial,sans-serif;color:black;background-color:white;} B {font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;} P {font-family:Tahoma,Arial,sans-serif;background:white;color:black;font-size:12px;}A {color : black;}A.name {color : black;}HR {color : #525D76;}--></style> </head><body><h1>HTTP Status 403 - ???boetrustguard.TokenCreationFailed???[/BOE/portal/1408041430/InfoViewAppActions/ajaxUre/ajaxRequest] ???boetrustguard.TokenCreationFailedValue??? [MDAwREAxREkzRDNKQFdmbUtRMz5WUTo9QV9tSlEyNTAEQ&skipSso=true] ???boetrustguard.TokenCreationFailedMessage???[???boetrustguard.token.invalid???]</h1><HR size="1" noshade="noshade"><p><b>type</b> Status report</p><p><b>message</b> <u>???boetrustguard.TokenCreationFailed???[/BOE/portal/1408041430/InfoViewAppActions/ajaxUre/ajaxRequest] ???boetrustguard.TokenCreationFailedValue??? [MDAwREAxREkzRDNKQFdmbUtRMz5WUTo9QV9tSlEyNTAEQ&skipSso=true] ???boetrustguard.TokenCreationFailedMessage???[???boetrustguard.token.invalid???]</u></p><p><b>description</b> <u>Access to the specified resource has been forbidden.</u></p><HR size="1" noshade="noshade"><h3>Apache Tomcat/7.0.32</h3></body></html>
Looking forward for your reply.
Many thanks,
Ayub
The value being referenced in the error is:
[MDAwREAxREkzRDNKQFdmbUtRMz5WUTo9QV9tSlEyNTAEQ&skipSso=true]
I suspect it is either the URL encoding (i.e. &) or that the bttoken should end at AEQ and not include the rest of the string. Can you check a functional version of this workflow, via Fiddler or IEWatch, and determine what value should be present for bttoken?
Hi James,
I used the Fiddler and below the value along with bttoken
http://server/BOE/portal/1408041430/InfoViewAppActions/jsp/InfoView_Listing/infoviewListing.faces?cafWebSesInit=true&bttoken=MDAwRDFnQVNLSU9PZFpTNWhIRV5UXkhZQ1diWkZIOTAEQ&bttoken=MDAwRDFnQVNLSU9PZFpTNWhIRV5UXkhZQ1diWkZIOTAEQ&appKind=InfoView&service=%2FInfoView%2Fcommon%2FappService.do&loc=en&pvl=en_GB&ctx=standalone&actId=4352&objIds=12&containerId=&pref=maxOpageUt%3D200%3BmaxOpageC%3D10%3Btz%3DEurope%2FLondon%3BmUnit%3Dinch%3BshowFilters%3Dtrue%3BsmtpFrom%3Dtrue%3BpromptForUnsavedData%3Dtrue%3B
I dont know how to fix this problem. Your help on this would be greatly appreciated.
Thanks
Ayub
Hi James,
Many thanks for your prompt help and support on ths.
Actually the Sentry value was not populated but now its working. 🙂
Now the script is running, logon to BO, opeb webi report, refresh and save but could not logoff. There is same error "boetrustguard token failed.
Thanks
Ayub
Hi James, I am following you article about performance testing in 4.1 and thought of giving it a try. I have setup JMeter as you suggested and setup HTTP Proxy (using Jmeter 2.12). when I recorded the script it seems like it's getting all the information but when I rerun tests, it's failing on couple of places and after further research, it's bttoken value that's not populating.it is not passing this value at all (no matter what regular expression I tried) I made sure i'm using (.+?)" but to no use. I still see bttoken=None (default value). is there any thing in the regular expression I'm missing
bttoken=(.+?)"
I don't see any bttoken value in the response data from main.do (login URL) as well..
any help you can provide would be great.
thanks
Kenny
Hi Kenny,
It depends on which version of the product you're trying to run the performance test against. Your best bet is to use the View Results Tree in conjunction with a Debug Listener to test the regular expression. You can do this by changing the view to Regular Expression Tester and looking for the appropriate string.
Thanks,
Jim
Thanks James. Appreciate your reply. I am using BO 4.1 SP4. when I login initially without running test case, I can see bttoken in my response data but when I run test case, the same response data is coming in with blank bttoken. I tried using Fiddler and it shows bttoken value, but JMeter , for some reason not registering it as a test case. hope I'm making sense..any ideas ??
Hey Kenny,
Take a look at this comment:
http://scn.sap.com/community/bi-platform/blog/2013/08/26/performance-testing-in-bi-41#comment-433576
It looks like you're using the appropriate syntax, but it must be attached to the wrong request. You need to check the results of View Results Tree to see what the response body of your logon requests are. Is there a bttoken value returned as part of the response body? If not, you've either missed extracting the com.sun.faces value or there will be an exception there.
Thanks for your reply again.
1) I am using appropriate syntax (I hope)
2) I think I have attached this to correct request (main.do url ) as that's where I see bttoken value .. there is not bttoken value in prior requests
3) I have setup com.sun.faces.VIEW value and it is dynamically picking up correct values (using ${com} variable. that works perfectly
Still,I don't see bttoken value in response body.
What else could be missing? also, you said there might be an exception , could you elaborate on that if you don't mind?
Once again, thanks for taking time and helping me out
Thanks
Kenny
Kenny,
You need to extract bttoken from the logon.faces request:
<html>
<head>
<script type="text/javascript">
window.location = "../InfoView/listing/main.do?service=%2Fcommon%2FappService.do&appKind=InfoView&bttoken=MDAwRE42QUVAT1ZZZFFKV2lpP0JaYjxtWmA9VDdDPDAEQ";
</script>
</head>
</html>
The regex you have above should work for this. Make sure you're passing ${bttoken} to the following main.do request
James, thanks for your reply and sorry for responding late. Looks like my logon.faces is completely different from your logon.faces (i'm using 4.1 SP4) the script you specified in your reply is in my Main.do url response and it's bttoken=&None (coming form my regular expression extractor,added in logon.faces in previous URL sample)
So, do I have to put extractor in main.do and extract bttoken value? I tried that as well but did not work..
Thanks for any suggestions you can provide
Kenny,
I pasted mine from 4.1 SP4. Can you just email me (james.rapp@sap.com) the contents of your View Results Tree? I need to see the response body of every request preceding the main.do. The bttoken extraction must be performed before you hit main.do.
Thanks,
Jim
Just emailed it to your email id. Thanks a lot
Hi James,
I try to follow your steps and found some issue about "bttoken" with SAP BI 4.1 SP6. I found ${bttoken} was NULL. Could you advise me about issue?
Thanks,
Chaiyod
I followed the steps as mentioned in the document but I am not getting the information as mentioned in the blog.
What I am getting is as follows
I then added the Postprocessor – Regular expression extractor as shown in screenshot below and the logon.faces as shown below.
Hi Thomas,
Unfortunately the screen shots didn't come through. Please add a View Results Tree component and Debug Listener component to detemermine:
1. which request is failing (it will be red)
2. whether ${COM} and ${BTTOKEN} are populated/extracted correctly. You can see this detail at the bottom of the View Results Tree component after adding both and running your test.
Thanks,
Jim
James,
I need your help to fix this.
I followed your blogs to create my first test plan as we are planning to use Jmeter for BI 4.1 performance testing,
I created this using BI 4.1 Sp3 and there is slight variation based on your screenshot.
I am getting error whenever I execute login controller.
Any help is very highly appreciated .
Thanks!
Hi Raj,
You'll have to use a debug listener and view results tree components to ensure both variables {$COM} and {$BTTOKEN} are being populated properly. The 500 internal server error suggests some bad data is being passed into the request. Is this environment configured to use SSO?
James,
Thank you so much for the help.
This System is not configured for SSO.
Here is the post data for the reqeust
*******************************************************
POST http://xxxx.xx.com:8080/BOE/portal/1501061648/InfoView/logon.faces
POST data:
_id0%3Alogon%3ACMS=POCBO%3A6400&_id0%3Alogon%3AUSERNAME=administrator&_id0%3Alogon%3APASSWORD=xxxxxx&com.sun.faces.VIEW=%24%28COM%29&_id0=_id0
Cookie Data:
JSESSIONID=74A942EC41FF9D97ADE2C9B16C8387FB
Request Headers:
Origin: http://xxxxx.com:8080
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
Cache-Control: max-age=0
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2272.89 Safari/537.36
Referer: http://xxxxx.com:8080/BOE/portal/1501061648/InfoView/logon.faces
Connection: keep-alive
Accept-Encoding: gzip, deflate
Accept-Language: en-US,en;q=0.8
Content-Length: 145
Content-Type: application/x-www-form-urlencoded
Check the debug sampler component along with view results tree to determine whether ${COM} is being extracted correctly. In the request above:
com.sun.faces.VIEW=%24%28COM%29
decodes to:
com.sun.faces.VIEW=$(COM)
The syntax is ${COM}, please check your test plan and update accordingly.
wow. James, you are amazing.
it works now.
My first test plan was successful. Let me try other plans and update.
Thanks again !
Hi James,
I have same issue as Raj (500) and i added debug listener and view results tree.
and the com.sun.face.view exactly decodes to ${COM}.
We done have SSO also.Appreciate your inputs on this
Apologies for adding the code, hoping it would be helpful for others if they encounter same issue
Additional details as follows
Sample Start: 2015-03-24 20:35:16 GST
Load time: 11
Latency: 10
Size in bytes: 1423
Headers size in bytes: 330
Body size in bytes: 1093
Sample Count: 1
Error Count: 1
Response code: 500
Response message: Internal Server Error
Response headers:
HTTP/1.1 500 Internal Server Error
Server: Apache-Coyote/1.1
Set-Cookie: JSESSIONID=8F148429B1C5820B7A06A1C9BC88FA6C; Path=/BOE/; HttpOnly
X-UA-Compatible: IE=edge,requiresActiveX=true
Content-Type: text/html;charset=utf-8
Content-Language: en
Content-Length: 1093
Date: Tue, 24 Mar 2015 16:35:16 GMT
Connection: close
HTTPSampleResult fields:
ContentType: text/html;charset=utf-8
DataEncoding: utf-8
POST http://bi1-prod:8080/BOE/portal/1412222144/InfoView/logon.faces
POST data:
_id0:logon:CMS=BI1-PROD:6400&_id0:logon:USERNAME=${user}&_id0:logon:PASSWORD=${pass}&com.sun.faces.VIEW=${COM}&_id0=_id0
[no cookies]
Request Headers:
Accept-Language: en-US
Content-Length: 124
Accept-Encoding: gzip, deflate
Referer: http://agh-bi1-prod:8080/BOE/BI
User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.3; WOW64; Trident/7.0; .NET4.0E; .NET4.0C)
Connection: keep-alive
Content-Type: application/x-www-form-urlencoded
Accept: image/jpeg, application/x-ms-application, image/gif, application/xaml+xml, image/pjpeg, application/x-ms-xbap, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword, */*
Pragma: no-cache
Hi Thomas,
It looks like you're missing cookies from the request. Please add an HTTP Cookie Manager component to the test plan and run it again. The values, ${user}, ${pass}, and ${COM} should enumerate to the correctly extracted values. You can check this using a combination of Debug Sampler and View Results Tree components. The debug data will appear at the very bottom of the View Results Tree component.
Thanks,
Jim
Hi James,
Looks like something i am missing. Added http cookie manager and result is same
Attached some screenshots





Please advise on same
Hi James,
I have a requirement to use the Same JMX file in multiple environments and for multiple reports by passing the inputs to the JMX file using Java Programming.
Suppose, if I have test plan which I created from JMeter for Refreshing the BO Report. Then I have to use the same JMX file in other BO Environments for any reports which client want to test.Like by passing the BO server details and Report details in a excel file as inputs to the JMX file using Java.
Is it possible to use the same JMX file for other environments and for Other reports?Please advise me on this so that I will take it forward.
Thank you very much in Advance!!!
Regards,
Madhu.
Good stuff James. 🙂
Thank for detailed guide James!
I have made several tests according your guide and they did great job in BO testing!
Now our client ask us to generate load on HANA db through BO report refreshing.
But when I run BO test that includes report refreshing step there is no load generated on HANA side.
It means when in HANA I am checking M_ACTIVE_STATEMENTS table during test script execution I cant see script from my BO report.
I guess ".../refreshDocument.jsp" step in test do not reach HANA somehow.
Have you ever faced such issue?
Thank you in advance!
Regards,
Arsen.
Hi Arsen,
check out out the performance testing pattern book:
BI Platform 4.x Performance Testing Pattern Book - Business Intelligence (BusinessObjects) - SCN Wiki
We hit HANA pretty hard using Web Intelligence. This should help you out.