Download - Test eng-meetup-taki take

Transcript
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