World: r3wp
[!Cheyenne] Discussions about the Cheyenne Web Server
older newer | first last |
Dockimbel 16-May-2009 [4746x3] | 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 [4783x4] | 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? | |
in the above, I mean the req parameter sent to various phase handling callbacks. | |
Q3: Are there any time-based call backs we can implement through mods? sort of like a rate on a view face. this would be very usefull: -it could allow me to keep statistics on mod internals at regular intervals ex: average load, high/low peaks, -perform cash cleanup/buildup, ping remote tools for "I am alive" monitors, etc. | |
Robert 20-May-2009 [4787x4] | I hope there is a simple trick I don't see at the moment: |
As a result of an RSP script I want to return a new web-page that's on the file-system. I do it like this: print read %payment/index.html So far this works. What I need to do is, to insert some dynamic content into the read HTML file. | |
For this I see several options: 1. Somehow load this file as an RSP file and have it processed. 2. Somehow load this file as a SHTML file and have it processed as SSI file. 3. Add some marks and inser the stuff on the fly before delivering it. | |
Option 3 has the advantage, that I stay in my running RSP file context. On the other hand it's the "handmade" approach. | |
Kaj 20-May-2009 [4791] | I'd say your RSP script should "be" the resulting web page; that's the normal way to generate dynamic pages. Why do you think of them as separate? |
Robert 20-May-2009 [4792] | I use RapidWeaver to generate some files. And I need to inject HTML in one of these generated files. Hence options 1 to 3. The RSP is not generating the whole answer page. |
Dockimbel 20-May-2009 [4793x3] | Robert, see RESPONSE/FORWARD in the RSP API Reference page. |
<% response/forward %payment/index.rsp %> | |
Q1 - WORDS dialect : this dialect allow defining new config keywords that can be used in the %httpd.cfg file for your mod. IN defines the config file sections where it can apply. Possible values are : - globals : global config block used for server-wide options - main : applies to a domain or webapp context - location / folder : reserved for future use. | |
older newer | first last |