false false Env acp = false saveConfig true true true true true true true false true true false false false false false false false false 0 true true When 'Generate parent sample' of the transaction controller 'UF' is checked on, JMeter will NOT act right. Expected situation: When $VariableForIf == IfisYes the flow will go in the If Controller. Then the assertion will fail and the Nex Thread Loop will be started. Because the variable $VariableForIf is still 'IfIsYes' the flow ill again go into the If controller. The Assertion will fail again, and so on. Actual situation: The first time the flow is going into the If controller. The second time the flow is NOT going into the if controller and goes further. This is not right, because the variable $VariableForIf is still 'IfIsYes'. 'Solution': check out 'Generate parent sample' of the UF transaction controller. startnextloop false 2 1 1 1455023852000 1455023852000 false false true vars.put("VariableForIf", "IfIsYes"); false false true false "${VariableForIf}" == "IfIsYes" false false true false log.info("If Controller works fine, Assertion will fail. "); false String finalString = vars.get("VariableForIf"); if (finalString.equals("IfIsYes")) { Failure = true; FailureMessage = "Assertion failed"; } false false true false When 'Generate parent sample' of the transaction controller 'UF' is not checked on, JMeter will act right. startnextloop false 2 1 1 1455025449000 1455025449000 false false false vars.put("VariableForIf", "IfIsYes"); false false true false "${VariableForIf}" == "IfIsYes" false false true false log.info("If controller works, Assertion will fail. "); false String finalString = vars.get("VariableForIf"); if (finalString.equals("IfIsYes")) { Failure = true; FailureMessage = "Assertion failed"; } false false true false