diff options
| author | Siddharth Bhadri <siddharth.bhadri@huawei.com> | 2019-05-03 21:38:19 +0530 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2019-05-03 21:38:19 +0530 |
| commit | 44bbbc68f643401f2d86fedbdcf5cabe3e066ddc (patch) | |
| tree | 7a256b52ea2f91dd72f5091643ba5513454b577a | |
| parent | Merge pull request #446 from rohitsardesai83/update_codegen_bug (diff) | |
| parent | Benchark tests addition to perfornace framework (diff) | |
| download | kubeedge-44bbbc68f643401f2d86fedbdcf5cabe3e066ddc.tar.gz | |
Merge pull request #448 from pavan187/kubeedge_e2e
Benchmark tests addition to performace framework
| -rw-r--r-- | tests/e2e/utils/common.go | 6 | ||||
| -rw-r--r-- | tests/e2e/utils/pod.go | 28 | ||||
| -rw-r--r-- | tests/performance/common/common.go | 2 | ||||
| -rw-r--r-- | tests/performance/loadtest/loadtest_suite_test.go | 3 | ||||
| -rw-r--r-- | tests/performance/loadtest/loadtest_test.go | 33 | ||||
| -rw-r--r-- | tests/performance/nodedensity/nodedensity_suite_test.go | 4 | ||||
| -rw-r--r-- | tests/performance/nodedensity/nodedensity_test.go | 23 |
7 files changed, 87 insertions, 12 deletions
diff --git a/tests/e2e/utils/common.go b/tests/e2e/utils/common.go index b88df553b..0f12f5304 100644 --- a/tests/e2e/utils/common.go +++ b/tests/e2e/utils/common.go @@ -85,12 +85,12 @@ func edgecoreDeploymentSpec(imgURL, configmap string, replicas int) *apps.Deploy ImagePullPolicy: v1.PullPolicy("IfNotPresent"), Resources: v1.ResourceRequirements{ Requests: v1.ResourceList{ - v1.ResourceName(v1.ResourceCPU): resource.MustParse("100m"), - v1.ResourceName(v1.ResourceMemory): resource.MustParse("256Mi"), + v1.ResourceName(v1.ResourceCPU): resource.MustParse("200m"), + v1.ResourceName(v1.ResourceMemory): resource.MustParse("100Mi"), }, Limits: v1.ResourceList{ v1.ResourceName(v1.ResourceCPU): resource.MustParse("200m"), - v1.ResourceName(v1.ResourceMemory): resource.MustParse("512Mi"), + v1.ResourceName(v1.ResourceMemory): resource.MustParse("100Mi"), }, }, Env: []v1.EnvVar{{Name: "DOCKER_HOST", Value: "tcp://localhost:2375"}}, diff --git a/tests/e2e/utils/pod.go b/tests/e2e/utils/pod.go index a3408c418..1c0fbe6b9 100644 --- a/tests/e2e/utils/pod.go +++ b/tests/e2e/utils/pod.go @@ -126,7 +126,7 @@ func CheckPodRunningState(apiserver string, podlist v1.PodList) { } } return count - }, "240s", "4s").Should(Equal(len(podlist.Items)), "Delete Application deployment is Unsuccessfull, Pod has not come to Running State") + }, "1200s", "4s").Should(Equal(len(podlist.Items)), "Application deployment is Unsuccessfull, Pod has not come to Running State") } @@ -150,7 +150,31 @@ func CheckPodDeleteState(apiserver string, podlist v1.PodList) { } } return count - }, "240s", "4s").Should(Equal(podCount), "Delete Application deployment is Unsuccessfull, Pod has not come to Running State") + }, "1200s", "4s").Should(Equal(podCount), "Delete Application deployment is Unsuccessfull, Pods are not deleted within the time") + +} + +//CheckPodDeleteState function to check the Pod state +func CheckDeploymentPodDeleteState(apiserver string, podlist v1.PodList) { + var count int + //count the edgecore/cloudcore deployment pods and count only application pods deployed on KubeEdge edgen node + for _, pod := range podlist.Items { + if strings.Contains(pod.Name, "deployment-"){ + count++ + } + } + //podCount := len(podlist.Items) - count + Eventually(func() int { + var count int + for _, pod := range podlist.Items { + status, statusCode := GetPodState(apiserver + "/" + pod.Name) + InfoV2("PodName: %s status: %s StatusCode: %d", pod.Name, status, statusCode) + if statusCode == 404 { + count++ + } + } + return count + }, "240s", "4s").Should(Equal(count), "Delete Application deployment is Unsuccessfull, Pods are not deleted within the time") } diff --git a/tests/performance/common/common.go b/tests/performance/common/common.go index 9b887c5d9..f47d46ce7 100644 --- a/tests/performance/common/common.go +++ b/tests/performance/common/common.go @@ -161,6 +161,8 @@ func DeleteEdgeDeployments(apiServer string, nodes int){ return count }, "60s", "4s").Should(Equal(nodes), "EdgeNode deleton is unsuccessfull !!") + NodeInfo = nil + } func DeleteCloudDeployment(apiserver string){ diff --git a/tests/performance/loadtest/loadtest_suite_test.go b/tests/performance/loadtest/loadtest_suite_test.go index 1972ba19e..6d3ab1f42 100644 --- a/tests/performance/loadtest/loadtest_suite_test.go +++ b/tests/performance/loadtest/loadtest_suite_test.go @@ -40,13 +40,13 @@ func TestEdgecoreK8sDeployment(t *testing.T) { var cloudNode string var cloudHub string var cloudCoreHostIP string + var podlist metav1.PodList //var toTaint bool RegisterFailHandler(Fail) var _ = BeforeSuite(func() { utils.InfoV6("Kubeedge deployment Load test Begin !!") cfg = utils.LoadConfig() ctx = utils.NewTestContext(cfg) - var podlist metav1.PodList //Create configMap for CloudCore CloudConfigMap = "cloudcore-configmap-" + utils.GetRandomString(5) @@ -94,6 +94,7 @@ func TestEdgecoreK8sDeployment(t *testing.T) { By("Kubeedge deployment Load test End !!....!") DeleteEdgeDeployments(ctx.Cfg.ApiServer2, ctx.Cfg.NumOfNodes) + utils.CheckDeploymentPodDeleteState(ctx.Cfg.ApiServer2, podlist) //untaint Node err := utils.TaintEdgeDeployedNode(ToTaint, ctx.Cfg.ApiServer2+NodeHandler+"/"+EdgeNode) Expect(err).Should(BeNil()) diff --git a/tests/performance/loadtest/loadtest_test.go b/tests/performance/loadtest/loadtest_test.go index 8535dbc0a..d23b0b1d6 100644 --- a/tests/performance/loadtest/loadtest_test.go +++ b/tests/performance/loadtest/loadtest_test.go @@ -26,6 +26,7 @@ import ( . "github.com/onsi/gomega" "k8s.io/api/apps/v1" metav1 "k8s.io/api/core/v1" + "fmt" ) var DeploymentTestTimerGroup *utils.TestTimerGroup = utils.NewTestTimerGroup() @@ -96,7 +97,7 @@ var _ = Describe("Application deployment test in Perfronace test EdgeNodes", fun utils.CheckPodRunningState(ctx.Cfg.ApiServer2+AppHandler, podlist) }) - It("PERF_LOADTEST_POD_10: Create deployment and check the pods are coming up correctly", func() { + It("PERF_LOADTEST_POD_50: Create deployment and check the pods are coming up correctly", func() { var deploymentList v1.DeploymentList podlist = metav1.PodList{} replica := 50 @@ -118,7 +119,7 @@ var _ = Describe("Application deployment test in Perfronace test EdgeNodes", fun utils.CheckPodRunningState(ctx.Cfg.ApiServer2+AppHandler, podlist) }) - It("PERF_LOADTEST_POD_10: Create deployment and check the pods are coming up correctly", func() { + It("PERF_LOADTEST_POD_75: Create deployment and check the pods are coming up correctly", func() { var deploymentList v1.DeploymentList podlist = metav1.PodList{} replica := 75 @@ -161,5 +162,33 @@ var _ = Describe("Application deployment test in Perfronace test EdgeNodes", fun } utils.CheckPodRunningState(ctx.Cfg.ApiServer2+AppHandler, podlist) }) + + Measure("MEASURE_PERF_NODETEST_NODES_100: Create 10 KubeEdge Node Deployment, Measure Node Ready time", func(b Benchmarker) { + podlist = metav1.PodList{} + runtime := b.Time("runtime", func() { + var deploymentList v1.DeploymentList + podlist = metav1.PodList{} + replica := 100 + //Generate the random string and assign as a UID + UID = "edgecore-app-" + utils.GetRandomString(5) + IsAppDeployed := utils.HandleDeployment(false, false, http.MethodPost, ctx.Cfg.ApiServer2+DeploymentHandler, UID, ctx.Cfg.AppImageUrl[1], "", "", replica) + Expect(IsAppDeployed).Should(BeTrue()) + err := utils.GetDeployments(&deploymentList, ctx.Cfg.ApiServer2+DeploymentHandler) + Expect(err).To(BeNil()) + for _, deployment := range deploymentList.Items { + if deployment.Name == UID { + //label := nodeName + time.Sleep(2 * time.Second) + podlist, err = utils.GetPods(ctx.Cfg.ApiServer2+AppHandler, "") + Expect(err).To(BeNil()) + break + } + } + utils.CheckPodRunningState(ctx.Cfg.ApiServer2+AppHandler, podlist) + }) + + fmt.Println(runtime.Seconds()) + + }, 5) }) }) diff --git a/tests/performance/nodedensity/nodedensity_suite_test.go b/tests/performance/nodedensity/nodedensity_suite_test.go index cc1c936a7..f73e72b15 100644 --- a/tests/performance/nodedensity/nodedensity_suite_test.go +++ b/tests/performance/nodedensity/nodedensity_suite_test.go @@ -39,13 +39,14 @@ var ( func TestEdgecoreK8sDeployment(t *testing.T) { var cloudNode string var cloudCoreHostIP string + var podlist metav1.PodList //var toTaint bool RegisterFailHandler(Fail) var _ = BeforeSuite(func() { utils.InfoV6("Kubeedge deployment Load test Begin !!") cfg = utils.LoadConfig() ctx = utils.NewTestContext(cfg) - var podlist metav1.PodList + //Create configMap for CloudCore CloudConfigMap = "cloudcore-configmap-" + utils.GetRandomString(5) @@ -80,6 +81,7 @@ func TestEdgecoreK8sDeployment(t *testing.T) { By("Kubeedge deployment Load test End !!....!") DeleteCloudDeployment(ctx.Cfg.ApiServer) + utils.CheckPodDeleteState(ctx.Cfg.ApiServer+AppHandler, podlist) }) diff --git a/tests/performance/nodedensity/nodedensity_test.go b/tests/performance/nodedensity/nodedensity_test.go index 8bcb0c0fa..2bf15adb0 100644 --- a/tests/performance/nodedensity/nodedensity_test.go +++ b/tests/performance/nodedensity/nodedensity_test.go @@ -21,6 +21,7 @@ import ( . "github.com/onsi/ginkgo" metav1 "k8s.io/api/core/v1" + "fmt" ) @@ -43,23 +44,39 @@ var _ = Describe("Application deployment test in Perfronace test EdgeNodes", fun // Print result testTimer.PrintResult() DeleteEdgeDeployments(ctx.Cfg.ApiServer2, NoOfEdgeNodes) + utils.CheckDeploymentPodDeleteState(ctx.Cfg.ApiServer2+AppHandler, podlist) }) It("PERF_NODETEST_NODES_1: Create KubeEdge Node Deployment, Measure Node Ready time", func() { - NoOfEdgeNodes=1 + NoOfEdgeNodes=20 + podlist = metav1.PodList{} podlist = HandleEdgeDeployment(cloudHub, ctx.Cfg.ApiServer2+DeploymentHandler, ctx.Cfg.ApiServer2+NodeHandler, ctx.Cfg.ApiServer2+ConfigmapHandler, ctx.Cfg.EdgeImageUrl, ctx.Cfg.ApiServer2+AppHandler, NoOfEdgeNodes) }) It("PERF_NODETEST_NODES_5: Create 5 KubeEdge Node Deployment, Measure Node Ready time", func() { + podlist = metav1.PodList{} NoOfEdgeNodes=5 podlist = HandleEdgeDeployment(cloudHub, ctx.Cfg.ApiServer2+DeploymentHandler, ctx.Cfg.ApiServer2+NodeHandler, ctx.Cfg.ApiServer2+ConfigmapHandler, ctx.Cfg.EdgeImageUrl, ctx.Cfg.ApiServer2+AppHandler, NoOfEdgeNodes) }) - It("PERF_NODETEST_NODES_10: Create 10 KubeEdge Node Deployment, Measure Node Ready time", func() { - NoOfEdgeNodes=10 + + It("PERF_NODETEST_NODES_5: Create 5 KubeEdge Node Deployment, Measure Node Ready time", func() { + podlist = metav1.PodList{} + NoOfEdgeNodes=5 podlist = HandleEdgeDeployment(cloudHub, ctx.Cfg.ApiServer2+DeploymentHandler, ctx.Cfg.ApiServer2+NodeHandler, ctx.Cfg.ApiServer2+ConfigmapHandler, ctx.Cfg.EdgeImageUrl, ctx.Cfg.ApiServer2+AppHandler, NoOfEdgeNodes) }) + Measure("PERF_NODETEST_NODES_10: Create 10 KubeEdge Node Deployment, Measure Node Ready time", func(b Benchmarker) { + podlist = metav1.PodList{} + runtime := b.Time("runtime", func() { + NoOfEdgeNodes=20 + podlist = HandleEdgeDeployment(cloudHub, ctx.Cfg.ApiServer2+DeploymentHandler, ctx.Cfg.ApiServer2+NodeHandler, + ctx.Cfg.ApiServer2+ConfigmapHandler, ctx.Cfg.EdgeImageUrl, ctx.Cfg.ApiServer2+AppHandler, NoOfEdgeNodes) + }) + + fmt.Println(runtime.Seconds()) + + }, 5) }) }) |
