 Yeah, hello ladies and gentlemen I'm glad to be here and tell us something about Zahi and I think I should give him the talk and more provoking name like Why do you guys still use selenium? I met I met in the first in B event yesterday to guys They're working with selenium and they told me about some problems that face and I always were like, yeah, okay So he solves the problems I Say is an op source test for for web applications How do I And an op source so far for testing of web applications I'm working with I for a few months now and if it's very fun to work with if you're very comfortable with it And it's very fast and easy to use and easy to learn and I want to present to you why I feel it's so easy to work with Zahi You can create dynamic test scripts and big test suites in really was no effort to really save your time It works with a Java based proxy server this proxy server Executes JavaScript to do the user events like website and you're inserting text or do I can drop for check some boxes and Logging in and all the stuff that you ever do and even more that can handle cookies for examples and The tests are developed directly in the browser That means you you have a new browser tab where you create your tests. I will show that later the Browser dependency is a remarkable feature of Zahi Browsers test can be created and running on Nearly every browser was present ones and future browsers as long as they support JavaScript Let's say you you avoid the tests with Firefox Then you can automate the test on open bars safari Internet Explorer and Chromium and many many more You can choose between two languages to write your scripts Whereas I prefer JavaScript you may prefer you may prefer Ruby. It's your choice In comparison to other tools You have no need for weights and You have no need for X path which makes Dynamic websites and dynamic scripts. I'm really easy to handle. You don't get frustrated when the Get element by ID changes all the time. You reload the page I explained it further later when it comes to the Zahi controller where you develop your scripts Databases are handled very well that the driven testing. It's really fun to work with So When you started the thy proxy, you just browse to any site you want to be tested and With controller double-click you open the Zahi controller in a new tab. I hope you can see it. Well, this is the Zahi controller Even if you have no experience with JavaScript you can create tests just by copy and paste and the functions which offers the Zahi controller Just insert a name press record and then you do your actions You navigate your type of text checkboxes. You look in and everything Every every step you have done will will be shown here and You can even type in your own text in this field and test it But just one click and you do you see the result in the browser The the accessing of elements is pretty easy because You hold the control button and you move the mouse over your web page and and these Excessive field They will show up the the element the DOM element. You're pointing to You get alternative is excesses anytime so you you don't need to to name the element You could say yeah, I want the third headline or whatever and The really neat thing is the relational excesses the controller cam Zahi comes with an inbuilt API and Which based on JavaScript and they are the the the commands in under and near Where you can locate where you can point to an element just in relation to one another let's say I Don't know how this text field is named then I just say I want to I want the the the first text field under the text box Which I know and want to in that some text like five stars You can do this with every element you can You can access them by the relation in the DOM tree just by saying yeah, I want the third headline in the diff field Near the picture. I don't know you can do everything. It's pretty easy Yeah, when you stop recording you just play and you just click on stop and your test script is created This is just a plain text file and the record Running the running the test manually is even easier Just click on the playback tab and then Yeah, here's it here this Just click on the playback tab in that the script name and the website you want to be tested we want to get tested and First play and then you lean back and watch the die controller all the work You will see in the other in the other browser tab where your website is how every step is Executed and you can watch it and say okay everything is working fine and When it's not working fine when it doesn't state the success and then when it does set a failure Then you just click on view log files and the log files will show up Do they show up yes, they show up The log files are just a list of links which points to these meet where HTML log files bacon Just them It's colorfully marked if everything one went fine or not as you just you just see it in an instance If you test fails or not and what failed Every command is listed Asserts like is the element there is the element visible does context does it is text-wide It's marked in green and red and other failures that can happen like server timeouts or Yeah, bad connections are shown there in yellow and With just one click on every failed step or any step you will point directly You get directed to the script and you just see the line highlighted Where the failure happened? Zahi is very extendable You can can execute your batch files your share script. You can include any Java library you want and Just to give you an example of how tricks and how you could extend it We had at head issue We extended it and we wanted to get it integrated into Hudson and Zahi should run on and on server Therefore on headless. We have to run the browser headless and with some two simple share scripts We created a virtual display whereas the Firefox or the Chromium browser once and The second share script which takes screenshots on failure Zahi has an inbuilt API that that can Which executes when a failure is happening to recover your function and it takes screenshots They have a visual check what went wrong And with a sudden integration It's not possible to pre-test nightly builds before they get released and if anything fails They don't get released They can so you can make sure that The really needed user the really needed functions the use you want to provide to your users and your clients are There and are working whatever you do Second one is This simple redirecting of the proxy commands It doesn't it is now possible for us to run test scripts on the Android software development kit and therefore Testing mobile Mobile applications in a realistic environment in a realistic setting Yeah, I think I talked a little bit fast. We have so much time left Yeah, that's it for now, thank you for your attention and if you have any questions I'm here I think I'm I do my best to answer them Yeah Yeah As far as these people yesterday at the beer and told me it was a lot of beer I don't really know if it's right, but and they told me that they have the problem with the weight commands So I doesn't need weights that automatically automatically detects when a page is loaded or IAX highly dynamic content Detects once loaded before executing the next step Therefore no failures can happen the selenium you you have to say wait for like five seconds until everything is loaded before continuing or the the x-pass that you have to access an element by By a constant name Get a limit, you know this skill that would get the element by ID X Y Xi doesn't need it Therefore it It can handle it can handle webpages where the ID is constantly changing Which selenium doesn't It's enough for you Okay, excuse me, I didn't understand that could someone else I didn't understand it sorry With maven I didn't work with maven yet We just worked with with Hudson I can't don't have any other informations on other integration tools HTML Yeah, that's what Yeah, that's the problem. You have to convert the HTML to Something which gives us some information we can handle that's sure but but I in the in-built iPhone So he just gives us HTML Checking Right now we do but we are just working at it that it goes automatically that's it. That's it. That's that's the goal the goal and goal that Hudson automatically automatically detects if a build has Clear or if it has failed But I don't think this will take long time until that is done That is not so suitable for performance testing. You can Yeah, you can we have here the parallel execution of tests you can multi-thread a playback of tests But when you do a multi-thread a playback with ten or more Sessions and there it can happen then that that they are unpredictable failures Which doesn't come from the web application, but from Zahi when you have like eight parallel executions or five It's okay, but performance testing isn't very suitable Yeah, I Don't think so Yeah, our time is really up if there are any questions left We can meet in front. Maybe you have some other ideas how to extend Zahi and you could tell me about him Thank you