You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jmeter.apache.org by vl...@apache.org on 2023/05/13 20:02:16 UTC
[jmeter] branch master updated: test: add test for overriding FunctionProperty value while test is runing
This is an automated email from the ASF dual-hosted git repository.
vladimirsitnikov pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/jmeter.git
The following commit(s) were added to refs/heads/master by this push:
new bce4e6996d test: add test for overriding FunctionProperty value while test is runing
bce4e6996d is described below
commit bce4e6996d5bee16ec0642fd66d046db85f78d5b
Author: Vladimir Sitnikov <si...@gmail.com>
AuthorDate: Sat May 13 22:56:01 2023 +0300
test: add test for overriding FunctionProperty value while test is runing
Previously, it was possible to override FunctionProperty value
when the test is running with #setObjectValue.
It is not clear what was the use case, but the possibility was there.
So here's a test so we don't accidentally break that when removing
FunctionProperty caching.
---
.../testelement/property/FunctionPropertyTest.kt | 60 ++++++++++++++++++++++
1 file changed, 60 insertions(+)
diff --git a/src/core/src/test/kotlin/org/apache/jmeter/testelement/property/FunctionPropertyTest.kt b/src/core/src/test/kotlin/org/apache/jmeter/testelement/property/FunctionPropertyTest.kt
new file mode 100644
index 0000000000..eddf700021
--- /dev/null
+++ b/src/core/src/test/kotlin/org/apache/jmeter/testelement/property/FunctionPropertyTest.kt
@@ -0,0 +1,60 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to you under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.jmeter.testelement.property
+
+import org.apache.jmeter.engine.util.CompoundVariable
+import org.apache.jmeter.threads.JMeterContextService
+import org.apache.jmeter.threads.JMeterVariables
+import org.junit.jupiter.api.Assertions
+import org.junit.jupiter.api.Test
+
+class FunctionPropertyTest {
+ @Test
+ fun `override value when running`() {
+ JMeterContextService.getContext().apply {
+ variables = JMeterVariables().apply {
+ put("test_variable", "1")
+ }
+ }
+ val p = FunctionProperty(
+ "test",
+ CompoundVariable("test_variable=\${test_variable}").function
+ )
+ p.isRunningVersion = true
+
+ Assertions.assertEquals("test_variable=1", p.stringValue, "function should read value from the variables")
+
+ p.objectValue = "overridden with setObjectValue"
+
+ Assertions.assertEquals(
+ "overridden with setObjectValue",
+ p.stringValue,
+ "function should read value passed with setObjectValue"
+ )
+
+ p.recoverRunningVersion(null)
+
+ JMeterContextService.getContext().variables.put("test_variable", "2")
+
+ Assertions.assertEquals(
+ "test_variable=2",
+ p.stringValue,
+ "function should read value from the variables after recoverRunningVersion"
+ )
+ }
+}