Create 200 Dummy Users

Last modified by Thomas Mortagne on 2026/06/02 17:54

cogCreates 200 dummy users in the wiki for test purposes
TypeSnippet
Category
Developed by

Guillaume Lerouge, Thomas Mortagne

Rating
0 Votes
LicenseGNU Lesser General Public License 2.1

Description

Features :

  • use a set of 200 users first name/last name
  • choose the number of users to create
  • two modes:
    • fast (the default): create the user document directly and then update in one case the XWikiAllGroup document
    • standard: use the standard XWiki create user API, which is much slower because it update default groups with each new user, but it's also more accurate since it's relaly doing everything expected of a new user creation (set the proper right configuration, actually follow default groups configuration, etc.)

How to use :

  • Create a new wiki page with a user who has programming rights
  • Then paste the following content
  • Save the page
  • You now have a small form asking how many user you want to create, and if you want to use the fast mode
{{async context="request.parameters"}}
{{velocity}}
#set ($userNames = [
["Jean", "Valjean"],
["Georges", "Abitbol"],
["Adam","Harper"],
["Alan","Pfaff"],
["Alan","Vanwinkle"],
["Alana","Stutsman"],
["Albert","Osterman"],
["Alison","Sands"],
["Allan","Goris"],
["Allan","Razor"],
["Alma","Ratcliffe"],
["Alvaro","Cangemi"],
["Amanda","Basile"],
["Annabelle","Ducker"],
["Anthony","Granado"],
["Anthony","Mcdevitt"],
["Antonio","Starnes"],
["April","Kain"],
["Arlene","Stephen"],
["Armand","Stower"],
["Arthur","Ragsdale"],
["Ashlee","Hurtt"],
["Beata","Zar"],
["Bernice","Turnage"],
["Bertha","Schuck"],
["Billy","Sundberg"],
["Blanche","Page"],
["Bobby","Eaton"],
["Bobby","Winkelman"],
["Brandon","Dominick"],
["Brittanie","Noviello"],
["Bulah","Twombley"],
["Candace","Cote"],
["Carey","Balck"],
["Carey","Grishaber"],
["Carey","Twedell"],
["Chad","Guarino"],
["Chandra","Puffer"],
["Cheryl","Langley"],
["Chris","Creekmore"],
["Clare","Milum"],
["Clayton","Elbert"],
["Clinton","Dahmen"],
["Clinton","Ganley"],
["Clinton","Mcnaught"],
["Cody","Ridout"],
["Cody","Vigo"],
["Dale","Hernandes"],
["Dane","Hasychak"],
["Daniel","Colunga"],
["Darren","Tacey"],
["Darren","Vanaman"],
["Darryl","Buchta"],
["Debbie","Schlueter"],
["Doris","Adkins"],
["Eileen","Bard"],
["Elinor","Rita"],
["Elizabeth","Hendricks"],
["Elnora","Hornbuckle"],
["Elwood","Steketee"],
["Ericka","Hodgin"],
["Erik","Duley"],
["Ernest","Cowley"],
["Ernest","Frey"],
["Ernest","Helmick"],
["Esmeralda","Kardos"],
["Eve","Goodfellow"],
["Ewa","Villerreal"],
["Felicia","Manson"],
["Fernando","Outler"],
["Fidel","Jacoway"],
["Fidel","Paone"],
["Florence","Lillie"],
["Fred","Pyles"],
["Genna","Tranbarger"],
["George","Lamoureux"],
["Gerald","Graziano"],
["Gerald","Minnich"],
["Gina","Nickelson"],
["Gladys","Rothman"],
["Glenda","Wheat"],
["Gregory","Walls"],
["Guy","Gatton"],
["Hannah","Quijano"],
["Harold","Houser"],
["Harriet","Dreyer"],
["Howard","Sirois"],
["Hugh","Charland"],
["Hugh","Dipalma"],
["Hugh","Fuselier"],
["Hugh","Minaya"],
["Ida","Noe"],
["Inez","Marion"],
["James","Angell"],
["James","Cravens"],
["Jami","Gula"],
["Jamie","Brickhouse"],
["Jamie","Huot"],
["Jason","Willson"],
["Jeannette","Macaluso"],
["Jerri","Giesen"],
["Jerri","Houseknecht"],
["Jerri","Nickson"],
["Jessie","Olah"],
["Ji","Greenier"],
["Jonathan","Matos"],
["Joyce","Brian"],
["Julio","Sepeda"],
["Karina","Palka"],
["Katherine","Holzer"],
["Kathryn","Diaz"],
["Katie","Lloyd"],
["Keila","Brue"],
["Keith","Berner"],
["Kelly","Henegar"],
["Kenneth","Caraballo"],
["Kevin","Batchelder"],
["Kevin","Poindexter"],
["Kimberly","Cecil"],
["Kimberly","Hare"],
["Kristina","Kasper"],
["Lakisha","Trees"],
["Larita","Battisti"],
["Laura","Mcfadden"],
["Laurie","Carranza"],
["Lilia","Fouse"],
["Linda","Kavanaugh"],
["Linda","Power"],
["Lonnie","Sherrow"],
["Lori","Stjohn"],
["Lorrie","Lobdell"],
["Louis","Leggett"],
["Louis","Watterson"],
["Louisa","Galyean"],
["Louisa","Swingle"],
["Louise","Belanger"],
["Lynda","Knudsen"],
["Madelene","Robasciotti"],
["Mae","Brantley"],
["Maggie","Fernandez"],
["Maggie","Madore"],
["Mallory","Brodbeck"],
["Mallory","Sickels"],
["Manuel","Trotter"],
["Marcel","Avers"],
["Marcel","Cuffia"],
["Marcel","Merow"],
["Margaret","Amey"],
["Maricela","Bautch"],
["Marilyn","Shumpert"],
["Mark","Haynie"],
["Marlin","Gryniuk"],
["Martin","King"],
["Mathew","Mayton"],
["Max","Sprau"],
["Merrilee","Garelick"],
["Mildred","Colburn"],
["Ming","Negro"],
["Nathan","Shuster"],
["Neil","Helbert"],
["Nelson","Pinzon"],
["Nelson","Rayo"],
["Nicholas","Lowell"],
["Nicole","Tillman"],
["Norman","Thatcher"],
["Olivia","Bridgeman"],
["Peggy","Loggins"],
["Penelope","Maize"],
["Peter","Agee"],
["Peter","Valadez"],
["Priscilla","Katz"],
["Rachel","Marchand"],
["Randy","Frederickson"],
["Raphael","Dumaine"],
["Raymond","Nava"],
["Robyn","Duvall"],
["Rod","Schoneman"],
["Roger","Goldman"],
["Ronald","Looney"],
["Roy","Kushner"],
["Scott","Obryan"],
["Shawn","Ault"],
["Stanley","Cleaver"],
["Sylvia","Salazar"],
["Sylvia","Walther"],
["Tabatha","Goodsell"],
["Tari","Windish"],
["Tarra","Bellantuono"],
["Thomas","Coleman"],
["Tia","Drakeford"],
["Tina","Palomo"],
["Tony","Haight"],
["Tyrone","Crossett"],
["Tyrone","Golub"],
["Victor","Mcduffie"],
["Vincent","Nowak"],
["Viola","Mcnamee"],
["Wayne","Maye"],
["Wayne","Ulrich"],
["Yolanda","Hood"]
])

#if ($request.createusers)
#set ($usersNumber = $numbertool.toNumber($request.number))
#if ($usersNumber > $userNames.size())
  #set ($userNumber = $usersNumber / $userNames.size())
  #set ($userNumberExtra = $usersNumber % $userNames.size())
#else
  #set ($userNumber = 1)
  #set ($userNumberExtra = $usersNumber)
#end
#set ($allGroup = $xwiki.getDocument('XWiki.XWikiAllGroup'))

#foreach ($userName in $userNames)
  #if ($foreach.count < $usersNumber)
    #set ($userIndexMax = $userNumber)
    #if ($foreach.index < $userNumberExtra)
      #set ($userIndexMax = $userIndexMax + 1)
    #end
    #foreach ($userIndex in [1..$userIndexMax])
      #set ($name = "${userName[0]}${userName[1]}")
      #set ($reference = "XWiki.${xwiki.getUniquePageName('XWiki', $name)}")
      #if ($request.fast)
        ## Not using the standard XWiki#createUser to speed up group update
        #set ($userDocument = $xwiki.getDocument($reference))
        #set ($userObject = $userDocument.getObject("XWiki.XWikiUsers", true))
        #set ($void = $userObject.set('active' , 1))
        #set ($void = $userObject.set('first_name', $userName[0]))
        #set ($void = $userObject.set('last_name' , $userName[1]))
        #set ($void = $userDocument.save())
        #set ($groupObject = $allGroup.newObject('XWiki.XWikiGroups'))
        #set ($void = $groupObject.set('member', $reference))
      #else
        ## Use the standard XWiki#createUser
        #set($result = $xwiki.getXWiki().createUser($reference, {'first_name' : $userName[0], 'last_name' : $userName[1]}, $xcontext.context))
      #end
    #end
  #end
#end

#if ($request.fast)
  #set($void = $allGroup.save('Add new test users'))
#end
#else
  {{html}}
    <form action=''>
      <input type="hidden" name="createusers"/>
      Number of users to create: <input type="number" name="number" value="$userNames.size()"/>
      <br/>
      Fast mode (not using standard XWiki createUser API): <input type="checkbox" name="fast" checked/>
      <br/>
      <input type="submit" name="createusers" value="Create"/>
    </form>
  {{/html}}
#end
{{/velocity}}
{{/async}}

Bonus: create 200 revisions from 200 users in a document

{{groovy}}
def users = [
["Jean", "Valjean"],
["Georges", "Abitbol"],
["Adam","Harper"],
["Alan","Pfaff"],
["Alan","Vanwinkle"],
["Alana","Stutsman"],
["Albert","Osterman"],
["Alison","Sands"],
["Allan","Goris"],
["Allan","Razor"],
["Alma","Ratcliffe"],
["Alvaro","Cangemi"],
["Amanda","Basile"],
["Annabelle","Ducker"],
["Anthony","Granado"],
["Anthony","Mcdevitt"],
["Antonio","Starnes"],
["April","Kain"],
["Arlene","Stephen"],
["Armand","Stower"],
["Arthur","Ragsdale"],
["Ashlee","Hurtt"],
["Beata","Zar"],
["Bernice","Turnage"],
["Bertha","Schuck"],
["Billy","Sundberg"],
["Blanche","Page"],
["Bobby","Eaton"],
["Bobby","Winkelman"],
["Brandon","Dominick"],
["Brittanie","Noviello"],
["Bulah","Twombley"],
["Candace","Cote"],
["Carey","Balck"],
["Carey","Grishaber"],
["Carey","Twedell"],
["Chad","Guarino"],
["Chandra","Puffer"],
["Cheryl","Langley"],
["Chris","Creekmore"],
["Clare","Milum"],
["Clayton","Elbert"],
["Clinton","Dahmen"],
["Clinton","Ganley"],
["Clinton","Mcnaught"],
["Cody","Ridout"],
["Cody","Vigo"],
["Dale","Hernandes"],
["Dane","Hasychak"],
["Daniel","Colunga"],
["Darren","Tacey"],
["Darren","Vanaman"],
["Darryl","Buchta"],
["Debbie","Schlueter"],
["Doris","Adkins"],
["Eileen","Bard"],
["Elinor","Rita"],
["Elizabeth","Hendricks"],
["Elnora","Hornbuckle"],
["Elwood","Steketee"],
["Ericka","Hodgin"],
["Erik","Duley"],
["Ernest","Cowley"],
["Ernest","Frey"],
["Ernest","Helmick"],
["Esmeralda","Kardos"],
["Eve","Goodfellow"],
["Ewa","Villerreal"],
["Felicia","Manson"],
["Fernando","Outler"],
["Fidel","Jacoway"],
["Fidel","Paone"],
["Florence","Lillie"],
["Fred","Pyles"],
["Genna","Tranbarger"],
["George","Lamoureux"],
["Gerald","Graziano"],
["Gerald","Minnich"],
["Gina","Nickelson"],
["Gladys","Rothman"],
["Glenda","Wheat"],
["Gregory","Walls"],
["Guy","Gatton"],
["Hannah","Quijano"],
["Harold","Houser"],
["Harriet","Dreyer"],
["Howard","Sirois"],
["Hugh","Charland"],
["Hugh","Dipalma"],
["Hugh","Fuselier"],
["Hugh","Minaya"],
["Ida","Noe"],
["Inez","Marion"],
["James","Angell"],
["James","Cravens"],
["Jami","Gula"],
["Jamie","Brickhouse"],
["Jamie","Huot"],
["Jason","Willson"],
["Jeannette","Macaluso"],
["Jerri","Giesen"],
["Jerri","Houseknecht"],
["Jerri","Nickson"],
["Jessie","Olah"],
["Ji","Greenier"],
["Jonathan","Matos"],
["Joyce","Brian"],
["Julio","Sepeda"],
["Karina","Palka"],
["Katherine","Holzer"],
["Kathryn","Diaz"],
["Katie","Lloyd"],
["Keila","Brue"],
["Keith","Berner"],
["Kelly","Henegar"],
["Kenneth","Caraballo"],
["Kevin","Batchelder"],
["Kevin","Poindexter"],
["Kimberly","Cecil"],
["Kimberly","Hare"],
["Kristina","Kasper"],
["Lakisha","Trees"],
["Larita","Battisti"],
["Laura","Mcfadden"],
["Laurie","Carranza"],
["Lilia","Fouse"],
["Linda","Kavanaugh"],
["Linda","Power"],
["Lonnie","Sherrow"],
["Lori","Stjohn"],
["Lorrie","Lobdell"],
["Louis","Leggett"],
["Louis","Watterson"],
["Louisa","Galyean"],
["Louisa","Swingle"],
["Louise","Belanger"],
["Lynda","Knudsen"],
["Madelene","Robasciotti"],
["Mae","Brantley"],
["Maggie","Fernandez"],
["Maggie","Madore"],
["Mallory","Brodbeck"],
["Mallory","Sickels"],
["Manuel","Trotter"],
["Marcel","Avers"],
["Marcel","Cuffia"],
["Marcel","Merow"],
["Margaret","Amey"],
["Maricela","Bautch"],
["Marilyn","Shumpert"],
["Mark","Haynie"],
["Marlin","Gryniuk"],
["Martin","King"],
["Mathew","Mayton"],
["Max","Sprau"],
["Merrilee","Garelick"],
["Mildred","Colburn"],
["Ming","Negro"],
["Nathan","Shuster"],
["Neil","Helbert"],
["Nelson","Pinzon"],
["Nelson","Rayo"],
["Nicholas","Lowell"],
["Nicole","Tillman"],
["Norman","Thatcher"],
["Olivia","Bridgeman"],
["Peggy","Loggins"],
["Penelope","Maize"],
["Peter","Agee"],
["Peter","Valadez"],
["Priscilla","Katz"],
["Rachel","Marchand"],
["Randy","Frederickson"],
["Raphael","Dumaine"],
["Raymond","Nava"],
["Robyn","Duvall"],
["Rod","Schoneman"],
["Roger","Goldman"],
["Ronald","Looney"],
["Roy","Kushner"],
["Scott","Obryan"],
["Shawn","Ault"],
["Stanley","Cleaver"],
["Sylvia","Salazar"],
["Sylvia","Walther"],
["Tabatha","Goodsell"],
["Tari","Windish"],
["Tarra","Bellantuono"],
["Thomas","Coleman"],
["Tia","Drakeford"],
["Tina","Palomo"],
["Tony","Haight"],
["Tyrone","Crossett"],
["Tyrone","Golub"],
["Victor","Mcduffie"],
["Vincent","Nowak"],
["Viola","Mcnamee"],
["Wayne","Maye"],
["Wayne","Ulrich"],
["Yolanda","Hood"]
]

for(user in users){
  username = user[0] + user[1]
  document = doc.getDocument()
  document.setAuthor(username)
  xwiki.getXWiki().saveDocument(document, context.context)
}

doc.setContent("")
doc.save()
{{/groovy}}

Get Connected