Test eng-meetup-taki take

39
Manage Pipeline of Performance Test with Jenkins Vol.01 Mar/07/2017 Takeshi Takizawa Ecosystem Service Department, Rakuten, Inc.

Transcript of Test eng-meetup-taki take

Page 1: Test eng-meetup-taki take

Manage Pipeline of Performance Testwith Jenkins

Vol.01 Mar/07/2017Takeshi TakizawaEcosystem Service Department, Rakuten, Inc.

Page 2: Test eng-meetup-taki take

Self-introduction

2

Page 3: Test eng-meetup-taki take

DEMO

3

Jenkins project (https://jenkins.io/)GatlingCorp (http://gatling.io)

Test Client

Test Client

Test Client

Page 4: Test eng-meetup-taki take

Performance Test Pipeline

4

Page 5: Test eng-meetup-taki take

There are some issues😖😖😖

5

Page 6: Test eng-meetup-taki take

Performance Test Pipeline

6

• It’s difficult to estimate concrete requests 📈• Need to clarify that requests come permanently

or instantly 📊

Page 7: Test eng-meetup-taki take

Performance Test Pipeline

7

• Need programming knowledge 📚

Page 8: Test eng-meetup-taki take

Need programming knowledge

• It’s not 10 QPS 🙅

8

Page 9: Test eng-meetup-taki take

• Expected: Send requests in parallel

Need programming knowledge

9

Test Client APP

Page 10: Test eng-meetup-taki take

Need programming knowledge

• It’s not 10 QPS 🙅

10

Page 11: Test eng-meetup-taki take

• Actual: Send requests sequentially

Need programming knowledge

11

Test Client APP

Page 12: Test eng-meetup-taki take

Performance Test Pipeline

12

• Need infrastructure knowledge 📚• How to install packages• How to configure number of file descriptor

• Sometimes Test ENG doesn’t have enough permission to build server so need to ask INFRA ENG 🐢

Page 13: Test eng-meetup-taki take

Performance Test Pipeline

13

• Managing distributed test clients is complicated 👯

Page 14: Test eng-meetup-taki take

When I want to send heavy requests

• 1 Test Client doesn’t make enough load

14

Client APP

I can send 1000 QPSI can respond 2000 QPS

Page 15: Test eng-meetup-taki take

When I want to send heavy requests

• Scale Up Spec of Client Server?

15

Client APP

I can send 2500 QPS I can respond 2000 QPS

Page 16: Test eng-meetup-taki take

When I want to send heavy requests

• Scale Out is better because more flexible

16

Client

APPClient

Client

We can send 3000 QPS

I can respond 2000 QPS

Page 17: Test eng-meetup-taki take

But

17

Page 18: Test eng-meetup-taki take

Managing distributed test clients is complicated

• Concurrency 👯– Kick test clients at the same time– Only one Client is running on one Server

18

Page 19: Test eng-meetup-taki take

Performance Test Pipeline

19

• It’s boring to generate Test Report from distributed logs manually 🙏

Page 20: Test eng-meetup-taki take

Performance Test Pipeline

20

• Sometimes Test ENG doesn’t have enough permission to delete server so need to ask INFRA ENG 🐢

• People make mistakes 😲

Page 21: Test eng-meetup-taki take

Automate / Improve Test Pipeline

21

Not Coveredby this slide

Jenkins project (https://jenkins.io/)GatlingCorp (http://gatling.io)HashiCorp (https://www.hashicorp.com/)Chef Software, Inc. (https://www.chef.io/)

Page 22: Test eng-meetup-taki take

Need programming knowledge

• Gatling code is writable & readable 🙆

22

Page 23: Test eng-meetup-taki take

Test ENG doesn’t have enough permission

23

• Provide Jenkins jobs to create/delete new Test Client Servers (Jenkins Slaves)

Page 24: Test eng-meetup-taki take

Manage Test Clients with Jenkins Pipeline

24

Page 25: Test eng-meetup-taki take

Pipeline Code Sample

25

Page 26: Test eng-meetup-taki take

26

Page 27: Test eng-meetup-taki take

27

Page 28: Test eng-meetup-taki take

28

Page 29: Test eng-meetup-taki take

29

Page 30: Test eng-meetup-taki take

30

Page 31: Test eng-meetup-taki take

31

Page 32: Test eng-meetup-taki take

Collect Test Logs

• Use stash / unstash DSL

32

Page 33: Test eng-meetup-taki take

Generate Report from Test Logs

• gatling command w/ --reports-only option

33

Page 34: Test eng-meetup-taki take

Generate Report from Test Logs

34

Page 35: Test eng-meetup-taki take

Publish Test Report

• Use other Jenkins plugins through pipeline– HTML Publisher Plugin– Compress Artifacts Plugin

35

Page 36: Test eng-meetup-taki take

36

Page 37: Test eng-meetup-taki take

Automate / Improve Test Pipeline

37

Not Coveredby this slide

Jenkins project (https://jenkins.io/)GatlingCorp (http://gatling.io)HashiCorp (https://www.hashicorp.com/)Chef Software, Inc. (https://www.chef.io/)

Page 38: Test eng-meetup-taki take

Manage Pipeline of Performance Test with Jenkins

38

Jenkins project (https://jenkins.io/)GatlingCorp (http://gatling.io)

Page 39: Test eng-meetup-taki take

We’re Hiring Senior QA Engineer!!

Looking for a talented and experienced Senior QA engineer

with over 3 years of experience in software QA who can take on challenging tasks in running

full-scale testing on company’s worldwide services

https://jobs.rakuten.careers/careersection/rakuten_ext_cs/jobdetail.ftl?job=00004405

39