Zliczanie wykonań kodu

Klasa CountAllIterations zlicza, ile razy kod jest wykonywany przez wszystkich użytkowników wirtualnych. Klasa CountUserIterations zlicza, ile razy kod jest wykonywany przez jednego użytkownika wirtualnego.

Klasa CountAllIterations zlicza, ile razy kod jest wykonywany przez wszystkich użytkowników wirtualnych działających na konkretnej maszynie JVM i zwraca tę liczbę jako łańcuch.

package customcode;

import com.ibm.rational.test.lt.kernel.services.ITestExecutionServices;

/**
 * Klasa CountAllIterations zlicza, ile razy jest wykonywana
 * przez wszystkich użytkowników wirtualnych działających na konkretnej maszynie JVM i zwraca
 * tę liczbę jako łańcuch.  Jeśli wszyscy użytkownicy wirtualni na agencie działają w tej
 * samej maszynie JVM (jak to zwykle ma miejsce), ta klasa zliczy, ile razy
 * została uruchomiona na agencie.
 */

/**
 * @author Przykłady kodu niestandardowego IBM
 */

public class CountAllIterations implements
        com.ibm.rational.test.lt.kernel.custom.ICustomCode2 {
    private static int numJVMLoops = 0;

    /**
     * Instancje tej klasy zostaną utworzone za pomocą konstruktora bez argumentów.
     */
    public CountAllIterations() {
    }

    public String exec(ITestExecutionServices tes, String[] args) {
        return Integer.toString(++numJVMLoops);
    }
}  

Klasa CountUserIterations zlicza, ile razy kod jest wykonywany przez jednego użytkownika wirtualnego.

package customcode;

import com.ibm.rational.test.lt.kernel.services.ITestExecutionServices;
import com.ibm.rational.test.lt.kernel.IDataArea;

/**
 * Klasa CountUserIterations zlicza, ile razy jest wykonywana
 * przez jednego użytkownika wirtualnego i zwraca tę liczbę jako łańcuch.
 */

/**
 * @author Przykłady kodu niestandardowego IBM
 */

public class CountUserIterations implements
        com.ibm.rational.test.lt.kernel.custom.ICustomCode2 {

    /**
     * Instancje tej klasy zostaną utworzone za pomocą konstruktora bez argumentów.
     */
    public CountUserIterations() {
    }

    public String exec(ITestExecutionServices tes, String[] args) {
        IDataArea userDataArea = tes.findDataArea(IDataArea.VIRTUALUSER);
        final String KEY = "NumberIterationsPerUser";

        Number numPerUser = (Number)userDataArea.get(KEY);
        if (numPerUser == null) {
            numPerUser = new Number();
            userDataArea.put(KEY, numPerUser);
        }
                        
        numPerUser.value++;
        return Integer.toString(numPerUser.value);
    }
                
    private class Number {
        public int value = 0;
    }
}

Opinia