World: r3wp
[!Cheyenne] Discussions about the Cheyenne Web Server
older newer | first last |
Janko 16-May-2009 [4735x3] | just one detail idea for improvement .. when you intercept redirection in debug mode you can use javascript to set focus on the link to continue already so developer just presses space or enter and it continues. No need to leave keyboard for mouse or to press tab tab tab .. enter :) document.getElementById('java2s').focus() |
It seems app works with new one now .. no big changes were needed | |
I can send you link and username password once I set it on the new VPS | |
Dockimbel 16-May-2009 [4738] | Thanks for the JS advice, I'll add that too. You should read all the ChangeLog entries for 0.9.19 to check for potential issues with your code (the new RSP webapp default sandboxing is the biggest compatibility breaker). |
Janko 16-May-2009 [4739] | but sounds also the most awesome stability feature :) ... I looked at it, I will again .. this is a simple app at the end so I can test it quickly so I won't only criticise the new debug/log functionality ... for having it on server it's awesome that the trace log is made so I can just look at it and see it there were any errors for users, etc .. for that endo of the deal it's great |
Dockimbel 16-May-2009 [4740] | IIRC, you've proposed me some test scripts for Cheyenne, I'm very interested in such scripts. I have my own test framework, but it covers only a few basic test cases. I use it mostly for stress testing by simulating high loads (hundred of simultaneous requests). |
Janko 16-May-2009 [4741] | aha, mine is reverse, no stress testing but functionality... I made it for webapps but with it you could also do automated testing on a sample of scripts and see at any point if all the features work .. it is very much in devel still ... I used it for testing site-assistant but it's more manual at this point.. I will impove it as one of my clients needs it for their app. I hope it will be more edible or usable soon, I will show it to you then. |
Dockimbel 16-May-2009 [4742x2] | I was planning to write a full unit tests suite while making the documentation for Cheyenne 1.0. I hope to be able to reach that milestone before the end of this year. |
I'm also planning to work (probably this summer) on a high level web testing dialect allowing to implement more complex use cases simulating the work of a real user. | |
Janko 16-May-2009 [4744] | Yes, unit tests are very good for pure functionality (functions that don't affect the state) ... this is strictly for webapps, webapps is basically based on some state so unit test don't make sense except for the algoritmic part of webapp ... you can see sometning about this testing engine here .. http://itmmetelko.com/blog/2009/04/24/a-peek-into-wip-trail-testing-engine/ |
Dockimbel 16-May-2009 [4745x4] | That's very interesting and inspiring work. It's close to my own thoughts about a web app testing framework. You're very right, the main target should be the webapp API, not the UI. That's why I didn't invest in Selenium, I don't want to update scripts every time I change the UI without changing features. |
I was thinking about making a low-level dialect allowing to simulate user actions in a web browser. Then use that dialect to build a higher level dialect (specific for each webapp) allowing to navigate inside a webapp, make complex actions and check the result, using a minimal set of keywords. I haven't wrote down, nor refined those ideas, but it should be able to give you (at the higher level) something like : [ go site-assistant signup login: "[user-:-test-:-com]" pass: "pass" check-page default-page add-new-website website: "rebol.com" registrar: "registrar" check-result site-created "rebol.com" check-details website-form "rebol.com" "registrar" ... ] | |
In this example, test data is hardcoded, but the dialect should be able to read data from scenarii blocks allowing to loop test a sequence of features using several data sets. | |
I'd like to have a test dialect being it's own meta-dialect, so that you can build higher level dialect one on top of the other, to be able to test you webapp at *any* level (from basic HTTP request, to full simulation of a working day). | |
Janko 16-May-2009 [4749x3] | yes, dialect based solution would be very interesting ... I was thinking about dialects a little too (not concrete yet) ... currently my testing engine is made so that it uses a proxy and it records your what you do via browser and then it can repeat the same and comparte the output (it already figures out that it needs to set different cookie and some basic stuff to login for example , and I have idea to make it scriptable for other dynamic data but I haven't come that far yet ) . It also doesn't do any smart comparisson of the outputs, but more of a report for human to view for now |
yes, that wou bo awesome | |
maybe we could join the approaches so that both use common comparisson methods and reporting | |
Dockimbel 16-May-2009 [4752] | The recording proxy can be a very efficient approach for non-regression testing. |
Robert 16-May-2009 [4753x2] | A bit OT but Lad and I started a test-dialect for RebGUI. You could send CLICK to GUI objects etc. and compare results and state, make screenshots of something was wrong etc. |
but it's not totaly finished. | |
Dockimbel 16-May-2009 [4755x2] | Robert: Good to know. Can it be used to VID testing too? |
to = for | |
Janko 16-May-2009 [4757] | Robert cool |
Dockimbel 16-May-2009 [4758] | Janko: I was planning for some very simple console-based reporting like: testing signup... testing check-page... ### test KO : <error description> But I'll be glad to join forces when both our approaches would be really usable. I didn't wrote any specification so far, I'm still at the idea stage. My main concern is to reduce the cost of testing regression for our biggest web-based apps in production. |
Robert 16-May-2009 [4759] | VID: It shouldn't be that hard to adapt it. |
Janko 16-May-2009 [4760] | my report is json data rebol2json and then javascript displays it all ,... it's all single static html file with data and javascript (via my jsgoo library :) ) |
Robert 16-May-2009 [4761] | I think I will pic-up the project in a couple of weeks again and push a bit forward and than it get useable. |
Janko 16-May-2009 [4762] | so if your test will generate some relatively compatible data and if it would make sense to be presented like this we can do it |
Dockimbel 16-May-2009 [4763x2] | Yes, I think we could come up with a compatible reporting format. |
Robert: I would be interested in using it if it works with VID and also support keyboard simulation (especially VID hotkeys). | |
Robert 16-May-2009 [4765] | Here is a snippet of a test script: new_company: [ dt: "Eingabe/Firmeninformationen" with company [ ; reset data form press-right a check note = "" name: "Test Suite Company 1" address: "Teststra§e. 10" ; should bring up an ALERT check-window [press a][press ok] ; country: "Deutschland" ; press a ; select sector check-window [press req-sector][ sector-table: ["27"] ] ] ] |
Janko 16-May-2009 [4766] | Robert what you describe even if for GUI app sounds somewhat similar too.. I also take screenshots for example , and I also need some methods to chech and compare the state of app , that is still totally missing (and many other things) |
Robert 16-May-2009 [4767x2] | you reference the CONTEXT the test should be executed in. Then you can use all GUI word. Using set-word! sets the GUI widget to the value, state etc. (the dialect makes the most useful setting). You can press widgets, check values in widgets (fields, tables, check, ...) You can even use different paths depending on results. |
company_tbl_test: [ company_tbl: [61 "GFA-Motoren"] check company_tbl = [61 "GFA-Motoren"] ] First line sets a line in a table, second line checks if the selected value matches. | |
Dockimbel 16-May-2009 [4769] | Robert, maybe it should be the right time to switch to a "Testing" group (surprinsingly, there's no such group yet), we're going too OT. |
Robert 16-May-2009 [4770] | ok |
Maxim 16-May-2009 [4771x2] | <SNAP!> and doc cracks the whip !! |
;-) | |
Dockimbel 16-May-2009 [4773] | Max, that sounds too hard, a ringing bell would be more accurate. ;-) |
Maxim 18-May-2009 [4774x6] | I was doing a search on cheyenne the other day and came accross this. Is she a relative of yours doc? ;-) |
http://en.wikipedia.org/wiki/Cheyenne_Kimball | |
hi doc, I'm trying to get cheyenne working on my new debian VPS. so far I was able to get x11 working (thanks to henrik) and its now happy about that (its not complaining about X11 anymore). but its now complaining about libstdc++.so.5 | |
ok cheyenne is working... sorry about being so jumpy... I did some googling and am now starting to understand some of the deeper linux administration concepts. | |
yess.... a glorious cheyenne built 404 page not found in my browser using firefox and my new VPS with shiny 6 letter domain name :-) | |
now the fun part... building a new web site from scratch, using brand new technology ;-) | |
Dockimbel 18-May-2009 [4780x2] | Cheyenne Kimball: I often stumbled upon her fan pages searching for cheyenne keyword, pretty and talented woman. |
Cheyenne's 404 : sounds like a victory scream. :-) | |
Maxim 18-May-2009 [4782] | yes it is :-D |
Maxim 19-May-2009 [4783x2] | doc, trying to understand the mod 'WORDS dialect... I am reading its parser, and I still don't get what the 'IN token does. or what options I can use, or even why its needed. can you give me a few pointers on how and why it should be used? |
Q2: within the mod, requests have a locals value of none, does any of the uniserve/cheyenne internals touch this or can I use this at will within any module, creating an object and appending/changing attributes as needed? | |
older newer | first last |