Reputation: 708
We are currently establishing fitnesse as the testing tool user acceptance testing. So far everything is good. we are using the java version "20091121". We are having troubles with folders that are deeper than 4.
We have setup the following folder structure:
SetUp
TestSuite
content.txt + properties.xml (just "!contents" inside)
UseCase2204
content.txt + properties.xml (just "!contents" inside)
SingleRequest02
content.txt + properties.xml (just "!contents" inside)
PositiveTest
content.txt + properties.xml (just "!contents" inside)
OneAdultWithChild
here content.txt + properties.xml for the actual test containing 18 fixture tables
When we start fitnesse and navigate to the deepest folder ("OneAdultWithChild") it takes roundabout 10 seconds until the page is displayed. Now, when I move the content up one hierarchy level (into "PositiveTest") the page takes 3 seconds to render. When I put the test content on the second level ("UseCase2204") it almost displays in a instant.
The same behaviour happens during test executing. After pressing the "test" button the tests take:
Now, I am stuck with this. We need this deeply nested structure to group all the tests. But if there is no solution or workaround we can't use fitnesse and i will be a big idiot for promoting the framework. In the past I've had positive results with fitnesse but we didn't have these deeply nested structures.
Upvotes: 2
Views: 2139
Reputation: 708
dan,
thanks for your answer. this is what i've posted on the yahoo fitnesse group:
hi,
i just downloaded release "20100103" from the website and gave it a try with the same setup. a major improvement! i am very happy about this. now i can continue with the initial setup and hopefully convince everybody about it.
the performance improvement is also visible during test execution - very good. i can't see any significant difference between top level and nested tests anymore.
i hope the rest of the system behaves in the same way :)
thanks a lot for the quick help. i will be back with more feedback (or problems ;-)) after the inital setup is done and the people start working with it (developers and testers).
cheers marcel
Upvotes: 0
Reputation: 2569
It might not be the specific solution, but there is a fix for one Widget rendering issue that is currently being looked at: http://www.pivotaltracker.com/story/show/2200962
There is also a story out there for redoing the parser to be more efficient and capable, but that is a significant effort. Not sure when work will start on that.
Upvotes: 0
Reputation: 708
so, we've done some profiling. the main time of the 40 seconds to load the page (just load, not run) is spent in the following methods:
it seams like the varibale replacement logic + the widget rendering is using all the time :(
especially the "private void doRender()" in the fitnesse.wikitext.widgets.VariableWidget gives me headaches. there's a comment complaining about the complexity and that all this should be refactored.
see here
http://github.com/lvonk/fitnesse/commit/a7242991039970d769db681afa2336285700d421#diff-10
to me it looks like a dead end at the moment. we would use fitnesse for a really big project, one of the biggest IT projects currently ongoing in germany/europe. but i can't sell this if such basic stuff does not work fast enough :-/
i am still hoping that someone knows a fix otherwise i'll have to dig into the code over christmas and try to make it a bit faster.
i just noticed that there is a newer version (2009-11-25) on git hub that got rid of the comment and some lines of code were also changed. i'll give that a try.....
help highly appreciated
cheers marcel
Upvotes: 1
Reputation: 67760
Have you tried contacting the maintainer(s) of FitNesse about this? That should be your first course of action. Here's their "Get help" link: http://www.fitnesse.info/help .
In the meantime, if you can, you could try profiling fitnesse. It's quite possible that most of that time is spent in one or two places and a suitable workaround can be found. As this is an open source project, you should be able to have a quick look around the code. If you want to, anyway.
Update: Just a thought, is your test hierarchy on a NFS mount? Could you try running it on a "real" disk?
Upvotes: 1