Skip to content

Commit

Permalink
Merge a524b01 into 41665f7
Browse files Browse the repository at this point in the history
  • Loading branch information
matheuscscp committed Aug 15, 2019
2 parents 41665f7 + a524b01 commit 2907460
Show file tree
Hide file tree
Showing 6 changed files with 38 additions and 20 deletions.
2 changes: 2 additions & 0 deletions config/local.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -78,3 +78,5 @@ loadtest:
probability: 1
selfDeleteMembership:
probability: 1
searchClans:
probability: 1
3 changes: 3 additions & 0 deletions loadtest/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -58,6 +58,8 @@ loadtest:
probability: 1
selfDeleteMembership:
probability: 1
searchClans:
probability: 1
```
Or setting the following environment variables:
```
Expand All @@ -70,6 +72,7 @@ KHAN_LOADTEST_OPERATIONS_LEAVECLAN_PROBABILITY (default: 0.01)
KHAN_LOADTEST_OPERATIONS_TRANSFERCLANOWNERSHIP_PROBABILITY (default: 0.01)
KHAN_LOADTEST_OPERATIONS_APPLYFORMEMBERSHIP_PROBABILITY (default: 0.01)
KHAN_LOADTEST_OPERATIONS_SELFDELETEMEMBERSHIP_PROBABILITY (default: 0.01)
KHAN_LOADTEST_OPERATIONS_SEARCHCLANS_PROBABILITY (default: 0.01)
```

# Operations with clans shared among different load test processes
Expand Down
3 changes: 0 additions & 3 deletions loadtest/app.go
Original file line number Diff line number Diff line change
Expand Up @@ -41,9 +41,6 @@ func (app *App) configure(configFile, sharedClansFile string) {
}

func (app *App) setConfigurationDefaults() {
app.setPlayerConfigurationDefaults()
app.setClanConfigurationDefaults()
app.setMembershipConfigurationDefaults()
app.setClientConfigurationDefaults()
}

Expand Down
36 changes: 29 additions & 7 deletions loadtest/clan.go
Original file line number Diff line number Diff line change
Expand Up @@ -4,22 +4,17 @@ import (
"github.com/topfreegames/khan/lib"
)

func (app *App) setClanConfigurationDefaults() {
app.setOperationProbabilityConfigDefault("updateSharedClanScore", 1)
app.setOperationProbabilityConfigDefault("createClan", 1)
app.setOperationProbabilityConfigDefault("leaveClan", 1)
app.setOperationProbabilityConfigDefault("transferClanOwnership", 1)
}

func (app *App) configureClanOperations() {
app.appendOperation(app.getUpdateSharedClanScoreOperation())
app.appendOperation(app.getCreateClanOperation())
app.appendOperation(app.getLeaveClanOperation())
app.appendOperation(app.getTransferClanOwnershipOperation())
app.appendOperation(app.getSearchClansOperation())
}

func (app *App) getUpdateSharedClanScoreOperation() operation {
operationKey := "updateSharedClanScore"
app.setOperationProbabilityConfigDefault(operationKey, 1)
return operation{
probability: app.getOperationProbabilityConfig(operationKey),
canExecute: func() (bool, error) {
Expand Down Expand Up @@ -92,6 +87,7 @@ func (app *App) getUpdateSharedClanScoreOperation() operation {

func (app *App) getCreateClanOperation() operation {
operationKey := "createClan"
app.setOperationProbabilityConfigDefault(operationKey, 1)
return operation{
probability: app.getOperationProbabilityConfig(operationKey),
canExecute: func() (bool, error) {
Expand Down Expand Up @@ -130,6 +126,7 @@ func (app *App) getCreateClanOperation() operation {

func (app *App) getLeaveClanOperation() operation {
operationKey := "leaveClan"
app.setOperationProbabilityConfigDefault(operationKey, 1)
return operation{
probability: app.getOperationProbabilityConfig(operationKey),
canExecute: func() (bool, error) {
Expand Down Expand Up @@ -165,6 +162,7 @@ func (app *App) getLeaveClanOperation() operation {

func (app *App) getTransferClanOwnershipOperation() operation {
operationKey := "transferClanOwnership"
app.setOperationProbabilityConfigDefault(operationKey, 1)
return operation{
probability: app.getOperationProbabilityConfig(operationKey),
canExecute: func() (bool, error) {
Expand Down Expand Up @@ -193,3 +191,27 @@ func (app *App) getTransferClanOwnershipOperation() operation {
},
}
}

func (app *App) getSearchClansOperation() operation {
operationKey := "searchClans"
app.setOperationProbabilityConfigDefault(operationKey, 1)
return operation{
probability: app.getOperationProbabilityConfig(operationKey),
canExecute: func() (bool, error) {
return true, nil
},
execute: func() error {
searchClansResult, err := app.client.SearchClans(nil, getRandomClanName())
if err != nil {
return err
}
if searchClansResult == nil {
return &GenericError{"NilPayloadError", "Operation searchClans returned no error with nil payload."}
}
if !searchClansResult.Success {
return &GenericError{"FailurePayloadError", "Operation searchClans returned no error with failure payload."}
}
return nil
},
}
}
9 changes: 3 additions & 6 deletions loadtest/membership.go
Original file line number Diff line number Diff line change
Expand Up @@ -4,19 +4,15 @@ import (
"github.com/topfreegames/khan/lib"
)

func (app *App) setMembershipConfigurationDefaults() {
app.setOperationProbabilityConfigDefault("applyForMembership", 1)
app.setOperationProbabilityConfigDefault("selfDeleteMembership", 1)
}

func (app *App) configureMembershipOperations() {
app.appendOperation(app.getApplyForMembershipOperation())
app.appendOperation(app.getSelfDeleteMembershipOperation())
}

func (app *App) getApplyForMembershipOperation() operation {
membershipLevel := app.config.GetString("loadtest.game.membershipLevel")
operationKey := "applyForMembership"
app.setOperationProbabilityConfigDefault(operationKey, 1)
membershipLevel := app.config.GetString("loadtest.game.membershipLevel")
return operation{
probability: app.getOperationProbabilityConfig(operationKey),
canExecute: func() (bool, error) {
Expand Down Expand Up @@ -67,6 +63,7 @@ func (app *App) getApplyForMembershipOperation() operation {

func (app *App) getSelfDeleteMembershipOperation() operation {
operationKey := "selfDeleteMembership"
app.setOperationProbabilityConfigDefault(operationKey, 1)
return operation{
probability: app.getOperationProbabilityConfig(operationKey),
canExecute: func() (bool, error) {
Expand Down
5 changes: 1 addition & 4 deletions loadtest/player.go
Original file line number Diff line number Diff line change
@@ -1,15 +1,12 @@
package loadtest

func (app *App) setPlayerConfigurationDefaults() {
app.setOperationProbabilityConfigDefault("createPlayer", 1)
}

func (app *App) configurePlayerOperations() {
app.appendOperation(app.getCreatePlayerOperation())
}

func (app *App) getCreatePlayerOperation() operation {
operationKey := "createPlayer"
app.setOperationProbabilityConfigDefault(operationKey, 1)
return operation{
probability: app.getOperationProbabilityConfig(operationKey),
canExecute: func() (bool, error) {
Expand Down

0 comments on commit 2907460

Please sign in to comment.