Since PHP 7.0 the random_bytes() is nativley available and Moodle
LMS requires greater than PHP 7, the native PHP funciton can be
used exclusively. Deprecating random_bytes_emulate.
Before this patch the exported users (to csv file that jmeter consumes)
were all the enrolled users in the test course. And that's ok when the
number of users enrolled match the number of concurrent threads planned
for a jmeter plan (each thread is a user).
But when both numbers don't match, that can lead to the jmeter plan
not behaving as expected, because it iterates over the excessive users
in the file, leading to some users having run 5 loops, others 4...
The only way to make results more consistent is to, always, ensure that
the number of users exported for the plan match the plan size and not
the site size.
And that's what this issue exactly does, restrict the export to the
number of threads that the plan will have. So every user always runs
the very same number of loops.
Use core functions that are faster for test file creation.
To support large requests for hashes, the core hash function
must support large hashes without recursion. PHP has a default
recursion depth of 100 and long hashes don't support this.
Remove transactions as they create performance problems for larger
courses and doesn't introduce significant benefit for developers.
Performance changes meant the times were much faster, a reasonable
guess was taken on performance of an average machine.
Added course start date for the course generated by the course
generator in order to prevent incorrect date calculations
(i.e. in assignment due dates) when the generated course is reset.
Also:
- Added a soft password for the
newly generated users so we can use
them to log in the site when running
performance tests.
- Added a method to see the courses-users
relation from outside course_backend class.
Moving it to course_backend keeping generic
methods and attributes in backend class.
AMOS BEGIN
MOV [size_0,tool_generator],[coursesize_0,tool_generator]
MOV [size_1,tool_generator],[coursesize_1,tool_generator]
MOV [size_2,tool_generator],[coursesize_2,tool_generator]
MOV [size_3,tool_generator],[coursesize_3,tool_generator]
MOV [size_4,tool_generator],[coursesize_4,tool_generator]
MOV [size_5,tool_generator],[coursesize_5,tool_generator]
AMOS END