diff --git a/web/api/src/test/java/org/onosproject/rest/GroupsResourceTest.java b/web/api/src/test/java/org/onosproject/rest/GroupsResourceTest.java
index a6ef6fb..4d4c933 100644
--- a/web/api/src/test/java/org/onosproject/rest/GroupsResourceTest.java
+++ b/web/api/src/test/java/org/onosproject/rest/GroupsResourceTest.java
@@ -444,10 +444,10 @@
 
         assertThat(result.names(), hasSize(1));
         assertThat(result.names().get(0), is("groups"));
-        final JsonArray jsonFlows = result.get("groups").asArray();
-        assertThat(jsonFlows, notNullValue());
-        assertThat(jsonFlows, hasGroup(group5));
-        assertThat(jsonFlows, hasGroup(group6));
+        final JsonArray jsonGroups = result.get("groups").asArray();
+        assertThat(jsonGroups, notNullValue());
+        assertThat(jsonGroups, hasGroup(group5));
+        assertThat(jsonGroups, hasGroup(group6));
     }
 
     /**
diff --git a/web/api/src/test/java/org/onosproject/rest/MetersResourceTest.java b/web/api/src/test/java/org/onosproject/rest/MetersResourceTest.java
index c03f7cc..cb39b21 100644
--- a/web/api/src/test/java/org/onosproject/rest/MetersResourceTest.java
+++ b/web/api/src/test/java/org/onosproject/rest/MetersResourceTest.java
@@ -447,9 +447,9 @@
 
         assertThat(result.names(), hasSize(1));
         assertThat(result.names().get(0), is("meters"));
-        final JsonArray jsonFlows = result.get("meters").asArray();
-        assertThat(jsonFlows, notNullValue());
-        assertThat(jsonFlows, hasMeter(meter5));
+        final JsonArray jsonMeters = result.get("meters").asArray();
+        assertThat(jsonMeters, notNullValue());
+        assertThat(jsonMeters, hasMeter(meter5));
     }
 
     /**
