Re: [U2] U2 Test Tools for system/unit regression testing w/integration with HP QualityCenter
Thanks Brian - that sounds great! I would be keen to get a trial version, once you have a SSH capable version. How is the product licensed? -Original Message- From: u2-users-boun...@listserver.u2ug.org [mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of Brian Leach Sent: Tuesday, 5 February 2013 10:14 PM To: 'U2 Users List' Subject: Re: [U2] U2 Test Tools for system/unit regression testing w/integration with HP QualityCenter Hi David I've recently released a testing product called (predictably!) mvTest. This supports automated testing of U2 applications using a dedicated scripting language modelled after UniBasic for familiarity but with a number of key extensions to handle data validation, test data handling, UI scripting and assertions. You can use this to create unit tests, UI tests (currently TELNET and U2-compatible secure TELNET/SSL but with SSH to follow shortly), regression and volume tests. Here's a quick overview of how it works - - You create unit or UI tests using the scripting language. These can be run through either of a Windows client or through a server-side script runner e.g. if you want to perform CI testing through a phantom. There's a nice Windows based editor to create, organize and test these. - The tests return pass or fail information based on assertions, so you can see at a glance if anything has broken. You can save the information and run various reports against it. - The tests can run direct against the database through a UO.NET connection (e.g. for testing subroutine calls and parameters) or through a terminal-style UI. It embeds a complete terminal emulator with all the necessary functions, and this allows you to drive screens, perform spot checks, branch on different results (e.g. handling error messages raised from your screens), handle send/expect style scripting and more complex conditions (such as wait until the cursor is at this location and this message has appeared here). - It keeps a separate shared server connection open while the UI tests run so you can, for example, script an entry screen via the terminal UI that ends up saving some data like a sales order, and then immediately check what has been written to the database through the underlying connection as part of the same script. - Unit tests can be organized into batches in which the tests run in order, so you can set up sequences that match business operations. - Batches can be organized into runs, so you can test whole suites of your application. Each run can be customized, so you can feed in per-site or per-system information. Runs can optionally randomize the order in which batches are executed, and you can set up different run scenarios and iteration patterns. - You can feed in and randomize test data and from the client side runner, access local features as well as the database operations. - Volume testing can take place using the Windows client. This is a multithreaded client supporting multiple concurrent UI sessions - I've tested up to 250 concurrent connections from a single PC running against an SB+ system for one customer last year who needed to stress test their SB+ system performance coming up to the New Year sales. This first release is targeting U2 with other MVDBMS to follow. I'm also adding support for GUI testing using the Microsoft Automation APIs and WebUI testing going forward. Anyone interested can contact me for an evaluation version, or download the user guide from www.brianleach.co.uk. Regards Brian ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users ** IMPORTANT MESSAGE * This e-mail message is intended only for the addressee(s) and contains information which may be confidential. If you are not the intended recipient please advise the sender by return email, do not use or disclose the contents, and delete the message and any attachments from your system. Unless specifically indicated, this email does not constitute formal advice or commitment by the sender or the Commonwealth Bank of Australia (ABN 48 123 123 124) or its subsidiaries. We can be contacted through our web site: commbank.com.au. If you no longer wish to receive commercial electronic messages from us, please reply to this e-mail by typing Unsubscribe in the subject line. ** ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users
Re: [U2] U2 Test Tools for system/unit regression testing w/integration with HP QualityCenter
David I'll keep you posted. It will be licenced per server - that's the easiest option. Best Regards Brian On 06 February 2013 at 08:39 Hona, David david.h...@cba.com.au wrote: Thanks Brian - that sounds great! I would be keen to get a trial version, once you have a SSH capable version. How is the product licensed? -Original Message- From: u2-users-boun...@listserver.u2ug.org [mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of Brian Leach Sent: Tuesday, 5 February 2013 10:14 PM To: 'U2 Users List' Subject: Re: [U2] U2 Test Tools for system/unit regression testing w/integration with HP QualityCenter Hi David I've recently released a testing product called (predictably!) mvTest. This supports automated testing of U2 applications using a dedicated scripting language modelled after UniBasic for familiarity but with a number of key extensions to handle data validation, test data handling, UI scripting and assertions. You can use this to create unit tests, UI tests (currently TELNET and U2-compatible secure TELNET/SSL but with SSH to follow shortly), regression and volume tests. Here's a quick overview of how it works - - You create unit or UI tests using the scripting language. These can be run through either of a Windows client or through a server-side script runner e.g. if you want to perform CI testing through a phantom. There's a nice Windows based editor to create, organize and test these. - The tests return pass or fail information based on assertions, so you can see at a glance if anything has broken. You can save the information and run various reports against it. - The tests can run direct against the database through a UO.NET connection (e.g. for testing subroutine calls and parameters) or through a terminal-style UI. It embeds a complete terminal emulator with all the necessary functions, and this allows you to drive screens, perform spot checks, branch on different results (e.g. handling error messages raised from your screens), handle send/expect style scripting and more complex conditions (such as wait until the cursor is at this location and this message has appeared here). - It keeps a separate shared server connection open while the UI tests run so you can, for example, script an entry screen via the terminal UI that ends up saving some data like a sales order, and then immediately check what has been written to the database through the underlying connection as part of the same script. - Unit tests can be organized into batches in which the tests run in order, so you can set up sequences that match business operations. - Batches can be organized into runs, so you can test whole suites of your application. Each run can be customized, so you can feed in per-site or per-system information. Runs can optionally randomize the order in which batches are executed, and you can set up different run scenarios and iteration patterns. - You can feed in and randomize test data and from the client side runner, access local features as well as the database operations. - Volume testing can take place using the Windows client. This is a multithreaded client supporting multiple concurrent UI sessions - I've tested up to 250 concurrent connections from a single PC running against an SB+ system for one customer last year who needed to stress test their SB+ system performance coming up to the New Year sales. This first release is targeting U2 with other MVDBMS to follow. I'm also adding support for GUI testing using the Microsoft Automation APIs and WebUI testing going forward. Anyone interested can contact me for an evaluation version, or download the user guide from www.brianleach.co.uk. Regards Brian ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users ** IMPORTANT MESSAGE * This e-mail message is intended only for the addressee(s) and contains information which may be confidential. If you are not the intended recipient please advise the sender by return email, do not use or disclose the contents, and delete the message and any attachments from your system. Unless specifically indicated, this email does not constitute formal advice or commitment by the sender or the Commonwealth Bank of Australia (ABN 48 123 123 124) or its subsidiaries. We can be contacted through our web site: commbank.com.au. If you no longer wish to receive commercial electronic messages from us, please reply to this e-mail by typing Unsubscribe in the subject line. ** ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users ___ U2-Users mailing list
[U2] Record locks (Unidata 7.2)
Hi all, I have not looked at the world of record locks since my R83 Pick days. I'm hoping to add the ability for the program I'm working on to: * Check if a record is locked * Wait until the lock is removed * Once the lock is removed, or if the record is not locked: * Lock the record * Perform the WRITE statement I'm hoping someone can share an example of how to accomplish this in UniBasic. Thank you, Jon Wells Campbell University ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users
Re: [U2] Record locks (Unidata 7.2)
You mean you want to loop on the checking *until* the lock is released and then write? So this is for a job interview? DOLOOP = 0 LOOP READU ITSLOCKEDJIM FROM Y,Z LOCKED DOLOOP = 1 END UNTIL NOT(DOLOOP) DO SLEEP 10; *Let the system catch its breath REPEAT WRITE X ON Y,Z ELSE CRT 'HELP ME! HELP ME!' -Original Message- From: Jon Wells jwaytwe...@yahoo.com To: U2-Users U2-Users@listserver.u2ug.org Sent: Wed, Feb 6, 2013 1:53 pm Subject: [U2] Record locks (Unidata 7.2) Hi all, I have not looked at the world of record locks since my R83 Pick days. I'm hoping to add the ability for the program I'm working on to: * Check if a record is locked * Wait until the lock is removed * Once the lock is removed, or if the record is not locked: * Lock the record * Perform the WRITE statement I'm hoping someone can share an example of how to accomplish this in UniBasic. Thank you, Jon Wells Campbell University ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users
Re: [U2] Record locks (Unidata 7.2)
Recte! I created me an infinite looop thingie. The DOLOOP = 0 should be INSIDE the Loop structure... obviously Bonk bonk on the head ! -Original Message- From: Wjhonson wjhon...@aol.com To: jwaytwells jwaytwe...@yahoo.com; u2-users u2-users@listserver.u2ug.org Sent: Wed, Feb 6, 2013 1:57 pm Subject: Re: [U2] Record locks (Unidata 7.2) You mean you want to loop on the checking *until* the lock is released and then write? So this is for a job interview? DOLOOP = 0 LOOP READU ITSLOCKEDJIM FROM Y,Z LOCKED DOLOOP = 1 END UNTIL NOT(DOLOOP) DO SLEEP 10; *Let the system catch its breath REPEAT WRITE X ON Y,Z ELSE CRT 'HELP ME! HELP ME!' -Original Message- From: Jon Wells jwaytwe...@yahoo.com To: U2-Users U2-Users@listserver.u2ug.org Sent: Wed, Feb 6, 2013 1:53 pm Subject: [U2] Record locks (Unidata 7.2) Hi all, I have not looked at the world of record locks since my R83 Pick days. I'm hoping to add the ability for the program I'm working on to: * Check if a record is locked * Wait until the lock is removed * Once the lock is removed, or if the record is not locked: * Lock the record * Perform the WRITE statement I'm hoping someone can share an example of how to accomplish this in UniBasic. Thank you, Jon Wells Campbell University ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users
Re: [U2] Record locks (Unidata 7.2)
READU blah blah blah THEN/ELSE WRITE blah blah blah END Can't get much more straight forward than that. -Original Message- From: u2-users-boun...@listserver.u2ug.org [mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of Jon Wells Sent: Wednesday, February 06, 2013 1:53 PM To: U2-Users@listserver.u2ug.org Subject: [U2] Record locks (Unidata 7.2) Hi all, I have not looked at the world of record locks since my R83 Pick days. I'm hoping to add the ability for the program I'm working on to: * Check if a record is locked * Wait until the lock is removed * Once the lock is removed, or if the record is not locked: * Lock the record * Perform the WRITE statement I'm hoping someone can share an example of how to accomplish this in UniBasic. Thank you, Jon Wells Campbell University ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users
Re: [U2] Record locks (Unidata 7.2)
Jon, Everything is strait forward except the wait until logic. That can get very complex if you want to. RECORDLOCKED(file.var, rec.id.expr) - Returns record lock status, 0 if not locked. MATREADU or READU or RECORDLOCKU - Will lock a record.* MATWRITE or WRITE or RELEASE - Will unlock a record. *Note you can use GETUSERNAME(STATUS()) to see who has it locked. David A. Green (480) 813-1725 DAG Consulting -Original Message- From: u2-users-boun...@listserver.u2ug.org [mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of Jon Wells Sent: Wednesday, February 06, 2013 2:53 PM To: U2-Users@listserver.u2ug.org Subject: [U2] Record locks (Unidata 7.2) Hi all, I have not looked at the world of record locks since my R83 Pick days. I'm hoping to add the ability for the program I'm working on to: * Check if a record is locked * Wait until the lock is removed * Once the lock is removed, or if the record is not locked: * Lock the record * Perform the WRITE statement I'm hoping someone can share an example of how to accomplish this in UniBasic. Thank you, Jon Wells Campbell University ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/listinfo/u2-users
Re: [U2] UV: Generating XML from Retrieve
Hi Jeff, Thanks for the reply. We had a look at the document you mentioned and found a few tips within. I ended up adding a map item in the XML file which we're deploying tomorrow. Cheers Peter -Original Message- From: u2-users-boun...@listserver.u2ug.org [mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of Jeff Schasny Sent: Wednesday, 6 February 2013 3:03 To: U2 Users List Subject: Re: [U2] UV: Generating XML from Retrieve You might take a look at Cedarrville's DOWNLOAD utility ftp://ftp.cedarville.edu/download/download.pdf Peter Cheney wrote: Hi Everyone, Hoping someone can help me here or at least point me in the right direction please. I am trying to generate xml output via a retrieve sentence so that a single valued field is either a) the parent to 3 multi-valued fields, or b) nested correctly within a parent element along with multi-valued fields. The sentence is using the TOXML and ELEMENTS keywords. According to the retrieve manual due to the inclusion of the ELEMENTS keyword the output is element-centric. I think what I need to do is specify attribute-centric output for just the few dictionary items listed below. According to the manual this is called Mixed Mode. Can this be done in a mapping file? Also can I use a file other than XML to store a custom mapping file? If so how do I do this? (Why? Because some genius designed our app to use the XML file for other data as well and as a consequence it gets cleared out regularly.) Will a mapping file allow me to customise how the dictionary items are output and can this output be nested as desired below? I've already made an association called PENDING_AUTHS for the three MV'd fields AUTH_NUMBER, AUTH_DATE, AUTH_AMOUNT and these are all converted but in the element centric mode thus: FILENAME2 _ID9/_ID REPAY_AMOUNT538.99/REPAY_AMOUNT NEXT_DUE02 SEP 2012/NEXT_DUE AUTH_TOTAL99.00/AUTH_TOTAL PENDING_AUTHS_MV AUTH_NUMBER123456/AUTH_NUMBER AUTH_DATE22/01/13/AUTH_DATE AUTH_AMOUNT40.00/AUTH_AMOUNT /PENDING_AUTHS_MV PENDING_AUTHS_MV AUTH_NUMBER654321/AUTH_NUMBER AUTH_DATE23/01/13/AUTH_DATE AUTH_AMOUNT59.00/AUTH_AMOUNT /PENDING_AUTHS_MV If I change the dictionary item AUTH_TOTAL from S to M and add it to the association then I get that repeated within the PENDING_AUTHS node, the first one has the data and the remainder are empty like this: FILENAME2 _ID9/_ID REPAY_AMOUNT538.99/REPAY_AMOUNT NEXT_DUE02 SEP 2012/NEXT_DUE PENDING_AUTHS_MV AUTH_TOTAL99.00/AUTH_TOTAL AUTH_NUMBER123456/AUTH_NUMBER AUTH_DATE22/01/13/AUTH_DATE AUTH_AMOUNT40.00/AUTH_AMOUNT /PENDING_AUTHS_MV PENDING_AUTHS_MV AUTH_TOTAL/ AUTH_NUMBER654321/AUTH_NUMBER AUTH_DATE23/01/13/AUTH_DATE AUTH_AMOUNT59.00/AUTH_AMOUNT /PENDING_AUTHS_MV So I tried to wrap this a basic subroutine but I couldn't get that to work either since I couldn't work out the correct syntax of the array to return. Is there a place that documents this? Everything I tried just mangled the data. Ideally what I'd like to get is something like this: FILENAME2 _ID9/_ID REPAY_AMOUNT538.99/REPAY_AMOUNT NEXT_DUE02 SEP 2012/NEXT_DUE AUTHS TOTAL=99.00 AUTH NUMBER=123456 DATE=22/01/13 AMOUNT=40.00/AUTH AUTH_NUMBER=654321 DATE=23/01/13 AMOUNT=59.00/AUTH /AUTHS or even this would do: FILENAME2 _ID9/_ID REPAY_AMOUNT538.99/REPAY_AMOUNT NEXT_DUE02 SEP 2012/NEXT_DUE PENDING_AUTHS_MV TOTAL99.00/TOTAL AUTH AUTH_NUMBER123456/AUTH_NUMBER AUTH_DATE22/01/13/AUTH_DATE AUTH_AMOUNT40.00/AUTH_AMOUNT /AUTH AUTH AUTH_NUMBER654321/AUTH_NUMBER AUTH_DATE23/01/13/AUTH_DATE AUTH_AMOUNT59.00/AUTH_AMOUNT /AUTH /PENDING_AUTHS_MV Not really fussy about the element names. Just wondering if I can achieve the correct element structure/nesting if I employ a mapping to create a mixed mode xml document? Any tips for where to start with the mapping? Do I need to specify all map elements or can I leave out unwanted ones to their system defaults? Will this map affect all xml output in the same file or just those dictionary items specifically in the map? Many thanks in advance, Cheers Peter Dictionary items PENDING_AUTHS 2 lines long. : P 0001: PH 0002: AUTH_NUMBER AUTH_DATE AUTH_AMOUNT Bottom at line 2. : EX AUTH_TOTAL SELECTed record name = AUTH_TOTAL. This is a Type I Descriptor last compiled on 05/02/13 at 09:49. 20 lines long. : L7 0001: I 0002: EXTRACT(RAISE(TRANS(FILENAME1,ACCOUNT,10,X)),1,1,1) 0003: MD2 0004: Total▒Auths. 0005: 15R 0006: S 0007: : EX AUTH_NUMBER SELECTed record name = AUTH_NUMBER. This is a Type I Descriptor last compiled on 05/02/13 at 10:24. 20 lines long. : L7 0001: I 0002: EXTRACT(RAISE(TRANS(FILENAME1,ACCOUNT,11,X)),1,0,0) 0003: 0004: