You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jmeter.apache.org by fs...@apache.org on 2017/11/25 17:02:44 UTC
svn commit: r1816323 - in
/jmeter/trunk/test/src/org/apache/jmeter/report/processor:
Top5ErrorsBySamplerConsumerSpec.groovy Top5ErrorsSummaryDataSpec.groovy
Author: fschumacher
Date: Sat Nov 25 17:02:44 2017
New Revision: 1816323
URL: http://svn.apache.org/viewvc?rev=1816323&view=rev
Log:
More unit tests from pr #332 from github
Contributed by Graham Russell
Added:
jmeter/trunk/test/src/org/apache/jmeter/report/processor/Top5ErrorsBySamplerConsumerSpec.groovy (with props)
jmeter/trunk/test/src/org/apache/jmeter/report/processor/Top5ErrorsSummaryDataSpec.groovy (with props)
Added: jmeter/trunk/test/src/org/apache/jmeter/report/processor/Top5ErrorsBySamplerConsumerSpec.groovy
URL: http://svn.apache.org/viewvc/jmeter/trunk/test/src/org/apache/jmeter/report/processor/Top5ErrorsBySamplerConsumerSpec.groovy?rev=1816323&view=auto
==============================================================================
--- jmeter/trunk/test/src/org/apache/jmeter/report/processor/Top5ErrorsBySamplerConsumerSpec.groovy (added)
+++ jmeter/trunk/test/src/org/apache/jmeter/report/processor/Top5ErrorsBySamplerConsumerSpec.groovy Sat Nov 25 17:02:44 2017
@@ -0,0 +1,76 @@
+/*
+ * 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.report.processor
+
+import org.apache.jmeter.junit.spock.JMeterSpec
+import org.apache.jmeter.report.core.Sample
+
+class Top5ErrorsBySamplerConsumerSpec extends JMeterSpec {
+
+ def sut = new Top5ErrorsBySamplerConsumer()
+
+ def "summary info data updated with non-controller passing sample"() {
+ given:
+ def mockSummaryInfo = Mock(AbstractSummaryConsumer.SummaryInfo)
+ def mockSample = Mock(Sample) {
+ getSuccess() >> true
+ }
+ when:
+ sut.updateData(mockSummaryInfo, mockSample)
+ then:
+ def data = (Top5ErrorsSummaryData) mockSummaryInfo.getData()
+ data.getTotal() == 1
+ }
+
+ def "summary info data updated with non-controller failing sample"() {
+ given:
+ def mockSummaryInfo = Mock(AbstractSummaryConsumer.SummaryInfo)
+ def mockSample = Mock(Sample) {
+ getResponseCode() >> "200"
+ }
+ when:
+ sut.updateData(mockSummaryInfo, mockSample)
+ then:
+ def data = (Top5ErrorsSummaryData) mockSummaryInfo.getData()
+ data.getTotal() == 1
+ data.getErrors() == 1
+ data.top5ErrorsMetrics[0][0] == ErrorsSummaryConsumer.ASSERTION_FAILED
+ def overallData = (Top5ErrorsSummaryData) sut.getOverallInfo().getData()
+ overallData.getTotal() == 1
+ overallData.getErrors() == 1
+ overallData.top5ErrorsMetrics[0][0] == ErrorsSummaryConsumer.ASSERTION_FAILED
+ }
+
+ def "key from sample is name"() {
+ given:
+ def mockSample = Mock(Sample)
+ when:
+ def key = sut.getKeyFromSample(mockSample)
+ then:
+ 1 * mockSample.getName() >> "name"
+ key == "name"
+ }
+
+ def "there are 3 + 2n expected results title columns"() {
+ expect:
+ sut.createResultTitles().size ==
+ 3 + 2 * sut.MAX_NUMBER_OF_ERRORS_IN_TOP
+
+ }
+
+}
Propchange: jmeter/trunk/test/src/org/apache/jmeter/report/processor/Top5ErrorsBySamplerConsumerSpec.groovy
------------------------------------------------------------------------------
svn:eol-style = native
Added: jmeter/trunk/test/src/org/apache/jmeter/report/processor/Top5ErrorsSummaryDataSpec.groovy
URL: http://svn.apache.org/viewvc/jmeter/trunk/test/src/org/apache/jmeter/report/processor/Top5ErrorsSummaryDataSpec.groovy?rev=1816323&view=auto
==============================================================================
--- jmeter/trunk/test/src/org/apache/jmeter/report/processor/Top5ErrorsSummaryDataSpec.groovy (added)
+++ jmeter/trunk/test/src/org/apache/jmeter/report/processor/Top5ErrorsSummaryDataSpec.groovy Sat Nov 25 17:02:44 2017
@@ -0,0 +1,62 @@
+/*
+ * 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.report.processor
+
+import spock.lang.Specification
+
+class Top5ErrorsSummaryDataSpec extends Specification {
+
+ def sut = new Top5ErrorsSummaryData()
+
+ def "when no errors are registered an array with null values is returned"() {
+ expect:
+ sut.getTop5ErrorsMetrics() == new Object[5][2]
+ }
+
+ def "error messages with the same frequency are preserved up until the size limit"() {
+ given:
+ ["A", "B", "C", "D", "E", "F"].each { sut.registerError(it) }
+ expect:
+ sut.getTop5ErrorsMetrics() == [["A", 1], ["B", 1], ["C", 1], ["D", 1], ["E", 1]]
+ }
+
+ def "error messages are sorted by size, descending"() {
+ given:
+ ["A", "A", "A", "B", "B", "C"].each {
+ sut.registerError(it)
+ }
+ expect:
+ sut.getTop5ErrorsMetrics() == [["A", 3], ["B", 2], ["C", 1], [null, null], [null, null]]
+ }
+
+ def "error and total count start at 0"() {
+ expect:
+ sut.getErrors() == 0
+ sut.getTotal() == 0
+ }
+
+ def "error and total count increment by one each time"() {
+ when:
+ sut.incErrors()
+ sut.incTotal()
+ then:
+ sut.getErrors() == 1
+ sut.getTotal() == 1
+ }
+
+}
Propchange: jmeter/trunk/test/src/org/apache/jmeter/report/processor/Top5ErrorsSummaryDataSpec.groovy
------------------------------------------------------------------------------
svn:eol-style = native