The MFP emulator and performance simulator are used to test LDD solutions without a physical printer. The emulator interactively emulates an e-Task 2 printer control panel. The performance simulator lets you set parameters and quickly run multiple tests simulating either an e-Task or an e-Task 2 printer. The interactive emulator is useful for preliminary debugging, and the performance simulator is useful for comprehensive functional and stress testing.
Note: In Windows 7 or later, make sure to run the Eclipse software and LDD SDK as an administrator, for the simulator and emulator to function properly. |
To access the interactive MFP emulator, in the Eclipse software, click LDD SDK > MFP > Emulator (eTask2).
To access the performance simulator, in the Eclipse software, click LDD SDK > MFP > Performance Simulator.
If you are running the MFP emulator or performance simulator for the first time, then the installation window appears. To install the application, do the following:
If necessary, change the folder where you want to install the application.
Note: The installation path cannot contain double-byte characters. |
If necessary, select Launch Emulator to launch the emulator or performance simulator after installation.
Click Finish.
If you selected Launch Emulator or if the MFP emulator is already installed, then the interactive MFP Emulator or MFP Simulator configuration window appears.
From the MFP Emulator configuration window, click Interactive Mode > MFP > Emulator (eTask2).
The home screen window appears, and the emulator is accessible as a printer from LMC.
Make sure that the LDD system is online.
Upload the solution to be tested in LMC. For more information, see the Lexmark Document Distributor Administrator's Guide.
Add the MFP emulator to a device group in LMC, and then discover it.
Note: The IP address of the emulator is the IP address of the computer where it is running. This address appears beside Client IP in the MFP emulator configuration window, and on the upper-left corner of the home screen. |
Deploy the solution, modify the home screen for the device group as necessary, and then perform a policy update.
If you include the profile on the home screen, then click the icon for the profile. If the profile does not appear on the home screen, then do the following:
From the printer home screen, do either of the following:
For e-Task 5 printers, click App Profiles.
For e-Task 2+, e-Task 3, or e-Task 4 printers, click Held Jobs > Profiles.
Click the icon for the profile.
The profile launches the associated script on an LDD server.
Note: Some prompts are not supported in interactive mode. When a script includes an unsupported prompt, a message appears on the emulated printer control panel. Click Next to continue the script after the prompt. |
Type or browse to the path of a TIFF, JPEG, PDF, or PostScript file to simulate the document to be scanned.
Click OK.
To assign a default image file to appear in each Scan File dialog, click File > Properties.
Print jobs initiated by a profile are discarded by default. To enable saving print jobs:
Make sure you have run the interactive emulator at least once. The configuration that contains the settings for the interactive emulator is created automatically the first time it is run.
Locate the \Profiles\interactive\conf\ folder where the MFP emulator is installed. The default is C:\Program Files\mfpsimulator\.
Open sim-interactive.properties in a text editor.
If necessary, modify the location where print jobs are saved beside
.Change the value beside
to .If the interactive emulator is open, then close, and then restart it.
From the MFP Simulator configuration window, click File > New Configuration.
Type the IP address or host name of the LDD system in the Load Balancer IP field.
Type the profile name to execute.
Note: The profile name refers to a device profile created using the Device Policy Editor in the solution. A list of profiles can also be found in the Profiles task after the solution has been deployed to the relevant device group in LMC. |
Select whether to simulate an e-Task 2 or e-Task device.
Discover the performance simulator and deploy the appropriate solution in LMC:
Note: This step is only necessary if the interactive MFP emulator or performance simulator has not been discovered, or if the necessary solution has not been deployed. |
To set the simulator to discovery mode, type
for both “Number of MFPs” and Repetitions fields.Click to save the test profile, and then click
to start the simulator in discovery mode.
Make sure the LDD system is online.
Upload the solution to be tested in LMC.
Add the performance simulator to a device group in LMC, and then discover it.
Note: The IP address of the simulator is the IP address of the computer where it is running. This address appears in the Client IP field in the MFP Simulator configuration window. |
Deploy the solution and modify the home screen for the device group as necessary, and then perform a policy update.
Click to stop the simulator.
Type the number of MFPs to simulate.
Type the number of repetitions for the test.
In the Scan File field, browse to a TIFF, JPEG, PDF or PostScript file to use in simulating a scan task.
If necessary, configure advanced settings, including any answers to prompts that should be different than the default. For more information, see Configuring advanced properties.
To create a log during the test in Log4J, select Enable UI Logging.
Click to save the test profile, and then click
to start testing.
You can stop a test that is still in progress by clicking .
Several advanced properties for the performance simulator, including custom prompt answers, are found on the Advanced tab of the MFP Simulator configuration window. Some properties also appear as fields on the Configuration tab. The selection of E-Task2 or E-Task on the Configuration tab determines whether the Advanced (e-Task 2) or Basic (e-Task) properties are used.
To save the test configuration after modifying advanced properties, click .
Property | Description | Default |
---|---|---|
serverAddress | The IP address or host name of the LDD system | None |
profileName | The profile to run on the LDD system Note: The profile name refers to a Device Profile created using the Device Policy Editor in the solution. A list of profiles can also be found in the Profiles task for the relevant device group in LMC. | None |
cancelProbability | The probability that the profile will be canceled, expressed as a decimal between and . In repetitive testing and testing on multiple printers, the profile is canceled for the specified percentage of the tests, with canceled tests randomly selected. When the application determines that a particular test will be canceled, a random prompt is selected within that test for the point of cancellation. The setting specifies that no tests are canceled, and the setting indicates that every test is canceled at a random prompt. | |
ui.logging | Determines whether the test is logged in Log4J |
Property | Description | Default |
---|---|---|
basic.addressRange | The IP addresses used for emulated e-Task printers. A single IP may be used to emulate multiple e-Task printers at a single address, since the emulator can use multiple HTTP connections for e-Task. Multiple addresses are specified as a range, in the format , and each included address must be bound to a network adapter in the local computer. If multiple addresses are specified, then only the first is used unless is set to . | Local IP address (set autotmatically when the simulator is started) |
basic.scanfiles | The TIFF, JPEG, PDF, or PostScript files to use in simulating the scan task. The setting can contain a comma-delimited list of multiple files, which are submitted together for the scan task. Note: The delimiter used in the list can be changed using the property. | None |
basic.promptAnswers | A comma-delimited list of answers to supply for prompts asked by the profile. If left blank, the default response is used for all prompts. If you need to supply an answer for any prompt, then you must supply all answers for the applicable logic path. For more information, see Supplying answers to prompts. Note: The delimiter used in the list can be changed using the property. | None |
basic.repetitions | The number of repetitions for the test on each emulated printer. Use for both this property and to enter discovery mode. | |
basic.nummfps | The number of printers to emulate for the test. Use for both this property and to enter discovery mode.Note: It is not recommended to emulate more than 250 printers. | |
basic.bind | Determines whether to bind the local IP address to the print listener for receiving print jobs | |
basic.prompting | Indicates to the application whether the profile contains prompts | |
basic.scanning | Indicates to the application whether the profile contains a scan task | |
basic.profilerunTimeThreshold | The time in milliseconds allowed for a profile to run before a warning message is logged | |
basic.timeToFirstPromptThreshold | The time in milliseconds allowed for the first prompt in the profile to display before a warning message is logged | |
basic.multiIP | Determines whether multiple IP addresses are used for emulating multiple e-Task printers. If , then only the first address specified for is used. If , then the number of addresses specified for must match the number specified for . | (automatically changed to if the test is run without specifying multiple addresses) |
basic.readTimeout | The timeout in milliseconds for reading data from the LDD system | |
basic.connectionTimeout | The timeout in milliseconds for connection requests to the LDD system | |
native | This property should always be for LDD 4.x. | |
basic.useRandomFileFromDirectory | Determines whether a random file is used from the folder specified in for simulating the scan task. When set, these properties override files specified for . | |
basic.randomFileDirectoryPath | Specifies the folder where image files for scans can be found when is set to | None |
Property | Description | Default |
---|---|---|
advanced.promptAnswers | A comma-delimited list of answers to supply for prompts asked by the profile. If left blank, the default response is used for all prompts. If you need to supply an answer for any prompt, then you must supply all answers for the applicable logic path. For more information, see Supplying answers to prompts. Note: The delimiter used in the list can be changed using the property. | None |
advanced.addressRange | The IP addresses used for emulated e-Task 2 printers. A single IP may be used to emulate multiple e-Task 2 printers at a single address, since the emulator can use multiple HTTP connections for e-Task 2. Multiple addresses are specified as a range, in the format , and each included address must be bound to a network adapter in the local computer. If multiple addresses are specified, then only the first is used unless is set to . | Local IP address (set autotmatically when the simulator is started) |
advanced.repetitions | The number of repetitions for the test on each emulated printer. Use for both this property and to enter discovery mode. | |
advanced.nummfps | The number of printers to emulate for the test. Use for both this property and to enter discovery mode.Note: It is not recommended to emulate more than 250 printers. | |
advanced.multiIP | Determines whether multiple IP addresses are used for emulating multiple e-Task 2 printers. If , then only the first address specified for is used. | (automatically changed to if the test is run without specifying multiple addresses) |
advanced.profilerunTimeThreshold | The time in milliseconds allowed for a profile to run before a warning message is logged | |
advanced.timeToFirstPromptThreshold | The time in milliseconds allowed for the first prompt in the profile to display before a warning message is logged | |
advanced.useSecureWebdav | Determines whether WebDAV communication with the LDD system should be secure. This property should be when the LDD system is v4.4.0.2 or later, or when the LDD system is v4.4.0.1 or earlier. | |
advanced.webdavUsername | The user name used for secure WebDAV communication with the LDD system. In most cases, this property should not be changed. | |
advanced.webdavPassword | The password used for secure WebDAV communication with the LDD system. In most cases, this property should not be changed. | |
advanced.useRandomFileFromDirectory | Determines whether a random file is used from the folder specified in for simulating scan tasks. When set, these properties override files specified for . | |
advanced.randomFileDirectoryPath | Specifies the folder where image files for scans can be found when is set to | None |
advanced.scanfiles1–advanced.scanfilesN | The TIFF, JPEG, PDF, or PostScript files to use in simulating scan tasks. Each property represents a single scan task, so properties after are only used for profiles that contain multiple scan tasks. Each property can contain a comma-delimited list of multiple files, which are submitted together for the scan task.Note: The delimiter used in the list can be changed using the property. | None |
Property | Description | Default |
---|---|---|
basic.linfo.name | The profile name associated with the scan task. The default, which refers to the profile that is run for the test, should usually remain set. | (This refers to the property in the Simulator Properties table.) |
basic.linfo.resolution | Resolution for the scan task | |
basic.linfo.format | Image format for the scan task | |
basic.linfo.depth | Bit depth for the scan task | |
basic.linfo.orientation | Orientation for the scan task | |
basic.linfo.papersize | Paper size for the scan task | |
basic.linfo.numpages | Number of pages for the scan task |
Property | Description | Default |
---|---|---|
advanced.linfo.name | The profile name associated with the scan task. The default, which refers to the profile that is run for the test, should usually remain set. | (This refers to the property in the Simulator Properties table.) |
advanced.linfo.resolution | Resolution for the scan task | |
advanced.linfo.format | Image format for the scan task | |
advanced.linfo.depth | Bit depth for the scan task | |
advanced.linfo.orientation | Orientation for the scan task | |
advanced.linfo.papersize | Paper size for the scan task | |
advanced.linfo.numpages | Number of pages for the scan task |
Property | Description | Default |
---|---|---|
basic.pj.addressRange | The address range to receive print jobs from the LDD system. The default, which refers to the address range set for the overall test, should usually remain set. | (This refers to the property in the Basic prompting properties table.) |
basic.pj.output | The folder in which simulated print jobs should be saved | The folder where the MFP emulator and performance simulator are installed |
basic.pj.ext | The file extension of saved print jobs. Do not include a period ( ) before the extension. The extension implies the file type used. One of the following: , , . | |
basic.pj.save | Determines whether to save print jobs from the LDD system | |
basic.pj.poolSize | The size of the thread pool to use for print jobs. The default, which refers to the overall server pool size, should usually remain set. |
Property | Description | Default |
---|---|---|
advanced.pj.addressRange | The address range to receive print jobs from the LDD system. The default, which refers to the address range set for the overall test, should usually remain set. | (This refers to the property in the Basic prompting properties table.) |
advanced.pj.output | The folder where simulated print jobs should be saved | The folder where the MFP emulator and performance simulator are installed |
advanced.pj.ext | The file extension of saved print jobs. Do not include a period ( ) before the extension. The extension implies the file type used. One of the following: , , . | |
advanced.pj.save | Determines whether to save print jobs from the LDD system | |
advanced.pj.poolSize | The size of the thread pool to use for print jobs. The default, which refers to the overall server pool size, should usually remain set. |
Property | Description | Default |
---|---|---|
* The delay properties are useful in simulating real-world delays where user input is expected when stress-testing a solution. For each delay specified, a random value is selected between the minimum and maximum values. | ||
clientStartUpDelay | The delay, in milliseconds, between starting each group of emulated MFPs when testing with more than one MFP | |
clientStartUpDelaySize | The number of MFPs to start after each interval specified by | |
startDelayMin* | The minimum delay between test repetitions | |
startDelayMax* | The maximum delay between test repetitions | |
promptDelayMin* | The minimum delay before answering prompts | |
promptDelayMax* | The maximum delay before answering prompts | |
initScanDelayMin* | The minimum delay before submitting a simulated scan | |
initScanDelayMax* | The maximum delay before submitting a simulated scan | |
betweenScanDelayMin* | The minimum delay between submitting multiple files in a simulated scan task | |
betweenScanDelayMax* | The maximum delay between submitting multiple files in a simulated scan task |
Property | Description | Default |
---|---|---|
delimiter | The delimiter used between subsequent prompt answers in andNote: A colon ( ) cannot be used as the delimiter. | |
scanFileDelimiter | The delimiter used between multiple scan files in and | |
defaultAnswer | The string used in and to indicate the default prompt answer | |
cancelAnswer | The string used in and to indicate canceling the prompt | |
randomAnswer | The string used in and to indicate that a random answer should be selected | |
serverPoolSize | The maximum number of threads in server thread pools | |
JMXHTTPAdaptorPort | The HTTP port for an Adaptor used for JMX-based remote management |
Property | Description | Default |
---|---|---|
basic.pauseCronExp | A CRON expression that schedules a pause in the test | None |
basic.unpauseCronExp | A CRON expression that schedules the test to resume after a pause has been scheduled | None |
basic.addMfpCronExp | A CRON expression that determines the interval at which a new printer is added to the test | None |
basic.removeMfpCronExp | A CRON expression that determines the interval at which a printer is removed from the test | None |
basic.numScheduledMfpsToAdd | The number of printers to add at the interval specified by | |
basic.numScheduledMfpsToRemove | The number of printers to remove at the interval specified by |
Property | Description | Default |
---|---|---|
advanced.pauseCronExp | A CRON expression that schedules a pause in the test | None |
advanced.unpauseCronExp | A CRON expression that schedules the test to resume after a pause has been scheduled | None |
advanced.addMfpCronExp | A CRON expression that determines the interval at which a new printer is added to the test | None |
advanced.removeMfpCronExp | A CRON expression that determines the interval at which a printer is removed from the test | None |
advanced.numScheduledMfpsToAdd | The number of printers to add at the interval specified by | |
advanced.numScheduledMfpsToRemove | The number of printers to remove at the interval specified by |
You can supply a comma-delimited list of answers to supply for prompts asked by the profile in the setting
(for e-Task printers) or (for e-Task 2 printers). If the setting is left blank, then the default response is used for all prompts. The delimiter for the list may be changed using the setting.If you need to supply an answer for any prompt, then you must supply all answers for the applicable logic path. To specify the default answer for a prompt in the path, use
, or the answer otherwise specified by the setting. The logic path may be different depending on prompt answers, so you must plan answers for the specific path you want to take through the prompts. It may be helpful to test the path by first using the interactive MFP emulator.The following table shows the valid answer values for each prompt type:
Prompt type | Valid answer values | Default value if no default is specified by the script |
---|---|---|
Array | Zero-based array index | |
Authentication (magnetic stripe card or RFID data) | A value, separated by a colon from a colon-delimited list of key=value pairs that simulate data from a magnetic stripe card or RFID device, using the following standard keys: For example: 4444555566667777:Track2Raw=;4444555566667 777=09051010000041600000?:Track1Raw=%B444 4555566667777^USER/JOEQ^09051010000000000 000000000000000000416000000?:FormatCode=B :Track1AdditionalData=0905101000000000000 0000000000000000416000000:Track1Pan=44445 55566667777Track2AdditionalData=090510100 00041600000:Name=USER/JOE Q Note: Line breaks may be included in Authentication values. However, line breaks in the example are included only for clarity. | Empty string |
Boolean | ||
Copy | only | N/A |
CopyUI | only | N/A |
Custom VLML | only | N/A |
only | N/A | |
EmailUI | only | N/A |
Fax | only | N/A |
FaxUI | only | N/A |
Image boolean | ||
Image list | Zero-based array index | |
Image message | only | N/A |
Integer | Numeric integer | |
List | Zero-based array index | |
Message | only | N/A |
Numeric | Numeric integer | |
Password | Text string | Empty string |
Scan | None; scan prompts are handled by the and settings. Answers for scan prompts should not be included in the sequence of prompt answers. | N/A |
ScanUI | only | N/A |
String | Text string | Empty string |
You can use the Java Monitoring and Management Console (JConsole) or another JMX-enabled application to access attributes and operations of the performance simulator process during a test. The following steps detail accessing these attributes and operations using JConsole specifically, but the listed attributes and operations are the same for other JMX-enabled applications.
Run JConsole.
Note: JConsole is installed with the Java SE Development Kit. The default location for JConsole is C:\Program Files\Java\jdk<current version>\bin\jconsole.exe. |
While a performance simulator test is running, select com.lexmark.workflow.simulator.App from the list of processes on the Local tab.
Note: If a test is started after the “Connect to Agent” dialog is opened, then click the empty area within the list of processes to refresh it. |
Click Connect > MBeans tab.
Expand the simulator folder, and then expand the folder for the currently running test profile.
For e-Task 2, expand the Advanced folder.
or
For e-Task, expand the Basic folder.
Select Simulation.
From the Attributes tab, you can see the following details of a running test:
ActiveMfps—This is the number of MFPs currently being emulated for the test.
BetweenClientStartUpDelaySize—This is the number of MFPs started after each interval specified by the
setting in the test profile.Cancels—This is the number of tests canceled, which is controlled by the
setting in the test profile.Failures—This is the number of tests run that did not complete successfully.
Name—This is the name of the test, which includes the test profile name; Advanced for e-Task 2 or Basic for e-Task.
PausedMfps—This is the number of paused MFPs.
RunCount—This is the total number of completed tests.
StartTime—This is the date and time when the test was started.
Successes—This is the number of successfully completed tests.
Only the BetweenClientStartUpDelaySize value can be changed from the Attributes tab.
From the Operations tab, you can perform any of the following actions by clicking the corresponding button:
getBetweenClientStartUpDelaySize—Retrieve the current setting for the number of MFPs started after each interval specified by the
setting in the test profile.setBetweenClientStartUpDelaySize—Set the number of MFPs started after each interval specified by the
setting in the test profile.getActiveMfps—Retrieve the number of MFPs currently being emulated for the test.
getRunCount—Retrieve the total number of completed tests.
getCancels—Retrieve the number of tests canceled.
getSuccesses—Retrieve the number of successfully completed tests.
getFailures—Retrieve the number of tests run that did not complete successfully.
pause—Pause the test.
getPausedMfps—Retrieve the number of paused MFPs.
addMfps—Add the number of MFPs specified for p1 to the test.
removeMfps—Remove the number of MFPs specified for p1 from the test.
shutdown—Stop the test.
getName—Retrieve the name of the test.
resume—Resume a paused test.
getStartTime—Retrieve the date and time when the test was started.