diff --git a/tests/user/create_users_json.yml b/tests/user/create_users_json.yml
deleted file mode 100644
index 15c3701f3f32e9c0c04287545be2199b404b819e..0000000000000000000000000000000000000000
--- a/tests/user/create_users_json.yml
+++ /dev/null
@@ -1,13 +0,0 @@
----
-- name: Create users.json
-  hosts: localhost
-
-  tasks:
-  - name: Check if users.json exists
-    ansible.builtin.stat:
-      path: users.json
-    register: register_stat_users
-
-  - name: Create users.json
-    ansible.builtin.command: /bin/bash users.sh 500
-    when: not register_stat_users.stat.exists
diff --git a/tests/user/generate_test_data.yml b/tests/user/generate_test_data.yml
new file mode 100644
index 0000000000000000000000000000000000000000..22899544478aeff6162e4b5b2822e2b7fded7752
--- /dev/null
+++ b/tests/user/generate_test_data.yml
@@ -0,0 +1,48 @@
+# Generate lists for users
+---
+- name: Create present services.json data
+  ansible.builtin.shell: |
+    date=$(date --date='+2 years' "+%Y-%m-%d %H:%M:%S")
+    echo "["
+    for i in $(seq -w 1 "{{ NUM }}"); do
+        echo "  {"
+        echo "    \"name\": \"testuser_${i}\","
+        echo "    \"first\": \"First ${i}\","
+        echo "    \"last\": \"Last ${i}\","
+        echo "    \"password\": \"user${i}PW\","
+        echo "    \"passwordexpiration\": \"${date}\""
+        if [ "$i" -lt "{{ NUM }}" ]; then
+           echo "  },"
+        else
+           echo "  }"
+        fi
+    done
+    echo "]"
+  vars:
+    NUM: 500
+  register: command
+
+- name: Set user_list
+  ansible.builtin.set_fact:
+    user_list: "{{ command.stdout | from_json }}"
+
+- name: Create absent user.json data
+  ansible.builtin.shell: |
+    echo "["
+    for i in $(seq -w 1 "{{ NUM }}"); do
+        echo "  {"
+        echo "    \"name\": \"testuser_${i}\""
+        if [ "$i" -lt "{{ NUM }}" ]; then
+           echo "  },"
+        else
+           echo "  }"
+        fi
+    done
+    echo "]"
+  vars:
+    NUM: 500
+  register: command
+
+- name: Set user_absent_list
+  ansible.builtin.set_fact:
+    user_absent_list: "{{ command.stdout | from_json }}"
diff --git a/tests/user/test_users_present_absent.yml b/tests/user/test_users_present_absent.yml
index 38752ce8e91f3e1b2351c4ed2f81c78afe189b0a..33a67af2a62d07a1c7062571dbabf0eaac962d98 100644
--- a/tests/user/test_users_present_absent.yml
+++ b/tests/user/test_users_present_absent.yml
@@ -1,39 +1,38 @@
 ---
-- name: Include create_users_json.yml
-  ansible.builtin.import_playbook: create_users_json.yml
-
 - name: Test users present and absent
   hosts: ipaserver
   become: true
   gather_facts: false
 
   tasks:
-  - name: Include users.json
-    ansible.builtin.include_vars:
-      file: users.json  # noqa missing-import
+  - name: Include generate_test_data.yml
+    ansible.builtin.include_tasks: generate_test_data.yml
+
+  - name: Size of user_list
+    ansible.builtin.debug:
+      msg: "{{ user_list | length }}"
 
-  - name: Create dict with user names
-    ansible.builtin.set_fact:
-      user_names: "{{ user_names | default([]) + [{'name': item.name}] }}"
-    loop: "{{ users }}"
+  - name: Size of user_absent_list
+    ansible.builtin.debug:
+      msg: "{{ user_absent_list | length }}"
 
-  - name: Cleanup test users len:{{ users | length }}
+  - name: Cleanup test users
     ipauser:
       ipaadmin_password: SomeADMINpassword
-      users: "{{ user_names }}"
+      users: "{{ user_absent_list }}"
       state: absent
 
-  - name: Users present len:{{ users | length }}
+  - name: Users present
     ipauser:
       ipaadmin_password: SomeADMINpassword
-      users: "{{ users }}"
+      users: "{{ user_list }}"
     register: result
     failed_when: not result.changed or result.failed
 
-  - name: Users absent len:{{ users | length }}
+  - name: Users absent
     ipauser:
       ipaadmin_password: SomeADMINpassword
-      users: "{{ user_names }}"
+      users: "{{ user_absent_list }}"
       state: absent
     register: result
     failed_when: not result.changed or result.failed
diff --git a/tests/user/test_users_present_absent_slice.yml b/tests/user/test_users_present_absent_slice.yml
index 885d910c85e9dd122110a9c2c406229bdede83d4..fc3b51c36676ecd5f6241239402f199fbea52a14 100644
--- a/tests/user/test_users_present_absent_slice.yml
+++ b/tests/user/test_users_present_absent_slice.yml
@@ -1,7 +1,4 @@
 ---
-- name: Include create_users_json.yml
-  ansible.builtin.import_playbook: create_users_json.yml
-
 - name: Test users present and absent with slice
   hosts: ipaserver
   become: true
@@ -10,39 +7,37 @@
   vars:
     slice_size: 100
   tasks:
-  - name: Include users.json
-    ansible.builtin.include_vars:
-      file: users.json  # noqa missing-import
+  - name: Include generate_test_data.yml
+    ansible.builtin.include_tasks: generate_test_data.yml
 
-  - name: Create dict with user names
-    ansible.builtin.set_fact:
-      user_names: "{{ user_names | default([]) + [{'name': item.name}] }}"
-    loop: "{{ users }}"
+  - name: Size of user_list
+    ansible.builtin.debug:
+      msg: "{{ user_list | length }}"
 
-  - name: Size of users slice.
+  - name: Size of user_absent_list
     ansible.builtin.debug:
-      msg: "{{ users | length }}"
+      msg: "{{ user_absent_list | length }}"
 
   - name: Cleanup test users
     ipauser:
       ipaadmin_password: SomeADMINpassword
-      users: "{{ user_names[item : item + slice_size] }}"
+      users: "{{ user_absent_list[item : item + slice_size] }}"
       state: absent
-    loop: "{{ range(0, user_names | length, slice_size) | list }}"
+    loop: "{{ range(0, user_absent_list | length, slice_size) | list }}"
 
   - name: Users present
     ipauser:
       ipaadmin_password: SomeADMINpassword
-      users: "{{ users[item : item + slice_size] }}"
-    loop: "{{ range(0, users | length, slice_size) | list }}"
+      users: "{{ user_list[item : item + slice_size] }}"
+    loop: "{{ range(0, user_list | length, slice_size) | list }}"
     register: result
     failed_when: not result.changed or result.failed
 
   - name: Users absent
     ipauser:
       ipaadmin_password: SomeADMINpassword
-      users: "{{ user_names[item : item + slice_size] }}"
+      users: "{{ user_absent_list[item : item + slice_size] }}"
       state: absent
-    loop: "{{ range(0, user_names | length, slice_size) | list }}"
+    loop: "{{ range(0, user_absent_list | length, slice_size) | list }}"
     register: result
     failed_when: not result.changed or result.failed
diff --git a/tests/user/users.sh b/tests/user/users.sh
deleted file mode 100644
index 8b1f5d298c387a4a3b3663f558f28ecdbb9ca450..0000000000000000000000000000000000000000
--- a/tests/user/users.sh
+++ /dev/null
@@ -1,29 +0,0 @@
-#!/bin/bash -eu
-
-NUM=${1-1000}
-FILE="users.json"
-date=$(date --date='+2 years' "+%Y-%m-%d %H:%M:%S")
-
-echo "{" > "$FILE"
-
-echo "  \"users\": [" >> "$FILE"
-
-for i in $(seq 1 "$NUM"); do
-    {
-        echo "    {"
-        echo "      \"name\": \"user$i\","
-        echo "      \"first\": \"First $i\","
-        echo "      \"last\": \"Last $i\","
-        echo "      \"password\": \"user${i}PW\","
-        echo "      \"passwordexpiration\": \"$date\""
-    } >> "$FILE"
-    if [ "$i" -lt "$NUM" ]; then
-       echo "    }," >> "$FILE"
-    else
-       echo "    }" >> "$FILE"
-    fi
-done
-
-echo "  ]" >> "$FILE"
-
-echo "}" >> "$FILE"
diff --git a/tests/user/users_absent.sh b/tests/user/users_absent.sh
deleted file mode 100644
index 812c5d6ffea84498a18f8431f134c13bc25d15e7..0000000000000000000000000000000000000000
--- a/tests/user/users_absent.sh
+++ /dev/null
@@ -1,22 +0,0 @@
-#!/bin/bash -eu
-
-NUM=1000
-FILE="users_absent.json"
-
-echo "{" > "$FILE"
-
-echo "  \"users\": [" >> "$FILE"
-
-for i in $(seq 1 "$NUM"); do
-    echo "    {" >> "$FILE"
-    echo "      \"name\": \"user$i\"," >> "$FILE"
-    if [ "$i" -lt "$NUM" ]; then
-       echo "    }," >> "$FILE"
-    else
-       echo "    }" >> "$FILE"
-    fi
-done
-
-echo "  ]" >> "$FILE"
-
-echo "}" >> "$FILE"