Forum Discussion
What we've done to create new, "randomized" contacts is to not bother with randomization.
I'm working with a healthcare application in which, each time through the test run, I need to add a new "patient"... but the patient has to have a unique SS # that does not equal the SS# for any other patients in the system... so, yes... need a new SS# each time I run the test. Not data driven, but I just need unique data.
Solution: I create my own SS# by concatenating the Julian date (today is 187), the two digit year (17) and the 4 digit 24 hour time of day (1335). This creates a unique 9 digit number that changes each time I create a new patient.
Perhaps, when creating contacts and their e-mails, you can utilize a similar methodology. Rather than having to create a table that contains the values, just build into your automation code/keyword test something that generates these unique numeric values that you just append onto a default name. Like, using the above, you could have a contact named "TEST 187171335". And their e-mail address could be "TEST187171334@x.com". If need be, you can add the seconds onto that time if your tests take less than a minute, that would add another factor in creating a unique ID.
We do something similar to what tristaanogre does. We have a variable called idstring that is a combination of date, hour, minute, second and if I need a random string for any field then I use eval(idstring) to get it.
- tristaanogre7 years agoEsteemed Contributor
DOH! Now why didn't I think of that, Marsha_R.
So... now I'm going to go back to my project, create a property in my framework script extension for that SS# and have it just simply return that unique ID. I've been doing the dumb thing and creating the string each time rather than from a centralized point... I feel sheepish. :)
I'll probably also add another property that will return a more lengthy unique ID for other use similar to what you've done. Thanks for the inspiration!
- Marsha_R7 years agoChampion Level 3
I'm just lazy. I got tired of cutting and pasting it for every place I needed a number. :)
- tristaanogre7 years agoEsteemed Contributor
Threw this together quick... JScript/JavaScript compatible. If you are using keyword tests, call this script routine and then you can use "Last Operation Result" in either a variable assignment or a parameter to utilize it in other operations.
function getUniqueID(digitLength) { var JJJHHMM = 7; var JJJYYHHMM = 9; var MMDDYYHHMM = 10; var MMDDYYYYHHMM = 12; var MMDDYYYYHHMMSS = 14; try { switch (digitLength) { case JJJHHMM: return aqConvert.DateTimeToFormatStr(aqDateTime.Now(), '%j%H%M'); break; case JJJYYHHMM: return aqConvert.DateTimeToFormatStr(aqDateTime.Now(), '%j%y%H%M'); break; case MMDDYYHHMM: return aqConvert.DateTimeToFormatStr(aqDateTime.Now(), '%m%d%y%H%M'); break; case MMDDYYYYHHMM: return aqConvert.DateTimeToFormatStr(aqDateTime.Now(), '%m%d%Y%H%M'); break; case MMDDYYYYHHMMSS: return aqConvert.DateTimeToFormatStr(aqDateTime.Now(), '%m%d%Y%H%M%S'); break; default: throw Error('An unknown digitLength was used. Please use a value of 7, 9, 10, 12, or 14'); } } catch (exception) { Log.Error(exception.message, exception.stack); return 'error'; } }
I'm also going to incorporate this into the OgreUtilities script extension.
Related Content
- 2 years agovericomms
- 2 years agoTauras
- 12 months agosinis
- 3 years agogeneticmaterial
Recent Discussions
- 7 hours agoSvetaG