diff options
author | Corey Hulen <corey@hulen.com> | 2016-04-21 22:37:01 -0700 |
---|---|---|
committer | Corey Hulen <corey@hulen.com> | 2016-04-21 22:37:01 -0700 |
commit | 2e5617c29be69637acd384e85f795a0b343bec8d (patch) | |
tree | 6b8bdae1e664013b97c2dda94985375abda91aa5 /api/channel_benchmark_test.go | |
parent | 5c755463ed3a4c74a383fb4460b5be02d8868481 (diff) | |
download | chat-2e5617c29be69637acd384e85f795a0b343bec8d.tar.gz chat-2e5617c29be69637acd384e85f795a0b343bec8d.tar.bz2 chat-2e5617c29be69637acd384e85f795a0b343bec8d.zip |
PLT-2057 User as a first class object (#2648)
* Adding TeamMember to system
* Fixing all unit tests on the backend
* Fixing merge conflicts
* Fixing merge conflict
* Adding javascript unit tests
* Adding TeamMember to system
* Fixing all unit tests on the backend
* Fixing merge conflicts
* Fixing merge conflict
* Adding javascript unit tests
* Adding client side unit test
* Cleaning up the clint side tests
* Fixing msg
* Adding more client side unit tests
* Adding more using tests
* Adding last bit of client side unit tests and adding make cmd
* Fixing bad merge
* Fixing libraries
* Updating to new client side API
* Fixing borken unit test
* Fixing unit tests
* ugg...trying to beat gofmt
* ugg...trying to beat gofmt
* Cleaning up remainder of the server side routes
* Adding inital load api
* Increased coverage of webhook unit tests (#2660)
* Adding loading ... to root html
* Fixing bad merge
* Removing explicit content type so superagent will guess corectly (#2685)
* Fixing merge and unit tests
* Adding create team UI
* Fixing signup flows
* Adding LDAP unit tests and enterprise unit test helper (#2702)
* Add the ability to reset MFA from the commandline (#2706)
* Fixing compliance unit tests
* Fixing client side tests
* Adding open server to system console
* Moving websocket connection
* Fixing unit test
* Fixing unit tests
* Fixing unit tests
* Adding nickname and more LDAP unit tests (#2717)
* Adding join open teams
* Cleaning up all TODOs in the code
* Fixing web sockets
* Removing unused webockets file
* PLT-2533 Add the ability to reset a user's MFA from the system console (#2715)
* Add the ability to reset a user's MFA from the system console
* Add client side unit test for adminResetMfa
* Reorganizing authentication to fix LDAP error message (#2723)
* Fixing failing unit test
* Initial upgrade db code
* Adding upgrade script
* Fixing upgrade script after running on core
* Update OAuth and Claim routes to work with user model changes (#2739)
* Fixing perminant deletion. Adding ability to delete all user and the entire database (#2740)
* Fixing team invite ldap login call (#2741)
* Fixing bluebar and some img stuff
* Fix all the different file upload web utils (#2743)
* Fixing invalid session redirect (#2744)
* Redirect on bad channel name (#2746)
* Fixing a bunch of issue and removing dead code
* Patch to fix error message on leave channel (#2747)
* Setting EnableOpenServer to false by default
* Fixing config
* Fixing upgrade
* Fixing reported bugs
* Bug fixes for PLT-2057
* PLT-2563 Redo password recovery to use a database table (#2745)
* Redo password recovery to use a database table
* Update reset password audits
* Split out admin and user reset password APIs to be separate
* Delete password recovery when user is permanently deleted
* Consolidate password resetting into a single function
* Removed private channels as an option for outgoing webhooks (#2752)
* PLT-2577/PLT-2552 Fixes for backstage (#2753)
* Added URL to incoming webhook list
* Fixed client functions for adding/removing integrations
* Disallowed slash commands without trigger words
* Fixed clientside handling of errors on AddCommand page
* Minor auth cleanup (#2758)
* Changed EditPostModal to just close if you save without making any changes (#2759)
* Renamed client -> Client in async_client.jsx and fixed eslint warnings (#2756)
* Fixed url in channel info modal (#2755)
* Fixing reported issues
* Moving to version 3 of the apis
* Fixing command unit tests (#2760)
* Adding team admins
* Fixing DM issue
* Fixing eslint error
* Properly set EditPostModal's originalText state in all cases (#2762)
* Update client config check to assume features is defined if server is licensed (#2772)
* Fixing url link
* Fixing issue with websocket crashing when sending messages to different teams
Diffstat (limited to 'api/channel_benchmark_test.go')
-rw-r--r-- | api/channel_benchmark_test.go | 115 |
1 files changed, 55 insertions, 60 deletions
diff --git a/api/channel_benchmark_test.go b/api/channel_benchmark_test.go index 09c734cc2..3e7c2882c 100644 --- a/api/channel_benchmark_test.go +++ b/api/channel_benchmark_test.go @@ -12,61 +12,47 @@ import ( const ( NUM_CHANNELS = 140 + NUM_USERS = 40 ) func BenchmarkCreateChannel(b *testing.B) { - var ( - NUM_CHANNELS_RANGE = utils.Range{NUM_CHANNELS, NUM_CHANNELS} - ) - team, _, _ := SetupBenchmark() + th := Setup().InitBasic() - channelCreator := NewAutoChannelCreator(Client, team.Id) + channelCreator := NewAutoChannelCreator(th.BasicClient, th.BasicTeam) - // Benchmark Start b.ResetTimer() for i := 0; i < b.N; i++ { - channelCreator.CreateTestChannels(NUM_CHANNELS_RANGE) + channelCreator.CreateTestChannels(utils.Range{NUM_CHANNELS, NUM_CHANNELS}) } } func BenchmarkCreateDirectChannel(b *testing.B) { - var ( - NUM_CHANNELS_RANGE = utils.Range{NUM_CHANNELS, NUM_CHANNELS} - ) - team, _, _ := SetupBenchmark() + th := Setup().InitBasic() - userCreator := NewAutoUserCreator(Client, team.Id) - users, err := userCreator.CreateTestUsers(NUM_CHANNELS_RANGE) + userCreator := NewAutoUserCreator(th.BasicClient, th.BasicTeam) + users, err := userCreator.CreateTestUsers(utils.Range{NUM_USERS, NUM_USERS}) if err == false { b.Fatal("Could not create users") } - data := make([]map[string]string, len(users)) - - for i := range data { - newmap := map[string]string{ - "user_id": users[i].Id, - } - data[i] = newmap - } - // Benchmark Start b.ResetTimer() for i := 0; i < b.N; i++ { - for j := 0; j < NUM_CHANNELS; j++ { - Client.CreateDirectChannel(data[j]) + for j := 0; j < NUM_USERS; j++ { + th.BasicClient.CreateDirectChannel(users[j].Id) } } } func BenchmarkUpdateChannel(b *testing.B) { + th := Setup().InitBasic() + var ( NUM_CHANNELS_RANGE = utils.Range{NUM_CHANNELS, NUM_CHANNELS} CHANNEL_HEADER_LEN = 50 ) - team, _, _ := SetupBenchmark() - channelCreator := NewAutoChannelCreator(Client, team.Id) + channelCreator := NewAutoChannelCreator(th.BasicClient, th.BasicTeam) channels, valid := channelCreator.CreateTestChannels(NUM_CHANNELS_RANGE) if valid == false { b.Fatal("Unable to create test channels") @@ -80,7 +66,7 @@ func BenchmarkUpdateChannel(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { for j := range channels { - if _, err := Client.UpdateChannel(channels[j]); err != nil { + if _, err := th.BasicClient.UpdateChannel(channels[j]); err != nil { b.Fatal(err) } } @@ -88,12 +74,13 @@ func BenchmarkUpdateChannel(b *testing.B) { } func BenchmarkGetChannels(b *testing.B) { + th := Setup().InitBasic() + var ( NUM_CHANNELS_RANGE = utils.Range{NUM_CHANNELS, NUM_CHANNELS} ) - team, _, _ := SetupBenchmark() - channelCreator := NewAutoChannelCreator(Client, team.Id) + channelCreator := NewAutoChannelCreator(th.BasicClient, th.BasicTeam) _, valid := channelCreator.CreateTestChannels(NUM_CHANNELS_RANGE) if valid == false { b.Fatal("Unable to create test channels") @@ -102,17 +89,18 @@ func BenchmarkGetChannels(b *testing.B) { // Benchmark Start b.ResetTimer() for i := 0; i < b.N; i++ { - Client.Must(Client.GetChannels("")) + th.BasicClient.Must(th.BasicClient.GetChannels("")) } } func BenchmarkGetMoreChannels(b *testing.B) { + th := Setup().InitBasic() + var ( NUM_CHANNELS_RANGE = utils.Range{NUM_CHANNELS, NUM_CHANNELS} ) - team, _, _ := SetupBenchmark() - channelCreator := NewAutoChannelCreator(Client, team.Id) + channelCreator := NewAutoChannelCreator(th.BasicClient, th.BasicTeam) _, valid := channelCreator.CreateTestChannels(NUM_CHANNELS_RANGE) if valid == false { b.Fatal("Unable to create test channels") @@ -121,44 +109,47 @@ func BenchmarkGetMoreChannels(b *testing.B) { // Benchmark Start b.ResetTimer() for i := 0; i < b.N; i++ { - Client.Must(Client.GetMoreChannels("")) + th.BasicClient.Must(th.BasicClient.GetMoreChannels("")) } } func BenchmarkJoinChannel(b *testing.B) { + th := Setup().InitBasic() + var ( NUM_CHANNELS_RANGE = utils.Range{NUM_CHANNELS, NUM_CHANNELS} ) - team, _, _ := SetupBenchmark() - channelCreator := NewAutoChannelCreator(Client, team.Id) + channelCreator := NewAutoChannelCreator(th.BasicClient, th.BasicTeam) channels, valid := channelCreator.CreateTestChannels(NUM_CHANNELS_RANGE) if valid == false { b.Fatal("Unable to create test channels") } // Secondary test user to join channels created by primary test user - user := &model.User{TeamId: team.Id, Email: "success+" + model.NewId() + "@simulator.amazonses.com", Nickname: "That Guy", Password: "pwd"} - user = Client.Must(Client.CreateUser(user, "")).Data.(*model.User) + user := &model.User{Email: "success+" + model.NewId() + "@simulator.amazonses.com", Nickname: "That Guy", Password: "pwd"} + user = th.BasicClient.Must(th.BasicClient.CreateUser(user, "")).Data.(*model.User) + LinkUserToTeam(user, th.BasicTeam) store.Must(Srv.Store.User().VerifyEmail(user.Id)) - Client.LoginByEmail(team.Name, user.Email, "pwd") + th.BasicClient.LoginByEmail(th.BasicTeam.Name, user.Email, "pwd") // Benchmark Start b.ResetTimer() for i := 0; i < b.N; i++ { for j := range channels { - Client.Must(Client.JoinChannel(channels[j].Id)) + th.BasicClient.Must(th.BasicClient.JoinChannel(channels[j].Id)) } } } func BenchmarkDeleteChannel(b *testing.B) { + th := Setup().InitBasic() + var ( NUM_CHANNELS_RANGE = utils.Range{NUM_CHANNELS, NUM_CHANNELS} ) - team, _, _ := SetupBenchmark() - channelCreator := NewAutoChannelCreator(Client, team.Id) + channelCreator := NewAutoChannelCreator(th.BasicClient, th.BasicTeam) channels, valid := channelCreator.CreateTestChannels(NUM_CHANNELS_RANGE) if valid == false { b.Fatal("Unable to create test channels") @@ -168,18 +159,19 @@ func BenchmarkDeleteChannel(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { for j := range channels { - Client.Must(Client.DeleteChannel(channels[j].Id)) + th.BasicClient.Must(th.BasicClient.DeleteChannel(channels[j].Id)) } } } func BenchmarkGetChannelExtraInfo(b *testing.B) { + th := Setup().InitBasic() + var ( NUM_CHANNELS_RANGE = utils.Range{NUM_CHANNELS, NUM_CHANNELS} ) - team, _, _ := SetupBenchmark() - channelCreator := NewAutoChannelCreator(Client, team.Id) + channelCreator := NewAutoChannelCreator(th.BasicClient, th.BasicTeam) channels, valid := channelCreator.CreateTestChannels(NUM_CHANNELS_RANGE) if valid == false { b.Fatal("Unable to create test channels") @@ -189,22 +181,23 @@ func BenchmarkGetChannelExtraInfo(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { for j := range channels { - Client.Must(Client.GetChannelExtraInfo(channels[j].Id, -1, "")) + th.BasicClient.Must(th.BasicClient.GetChannelExtraInfo(channels[j].Id, -1, "")) } } } func BenchmarkAddChannelMember(b *testing.B) { + th := Setup().InitBasic() + var ( NUM_USERS = 100 NUM_USERS_RANGE = utils.Range{NUM_USERS, NUM_USERS} ) - team, _, _ := SetupBenchmark() - channel := &model.Channel{DisplayName: "Test Channel", Name: "a" + model.NewId() + "a", Type: model.CHANNEL_OPEN, TeamId: team.Id} - channel = Client.Must(Client.CreateChannel(channel)).Data.(*model.Channel) + channel := &model.Channel{DisplayName: "Test Channel", Name: "a" + model.NewId() + "a", Type: model.CHANNEL_OPEN, TeamId: th.BasicTeam.Id} + channel = th.BasicClient.Must(th.BasicClient.CreateChannel(channel)).Data.(*model.Channel) - userCreator := NewAutoUserCreator(Client, team.Id) + userCreator := NewAutoUserCreator(th.BasicClient, th.BasicTeam) users, valid := userCreator.CreateTestUsers(NUM_USERS_RANGE) if valid == false { b.Fatal("Unable to create test users") @@ -214,7 +207,7 @@ func BenchmarkAddChannelMember(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { for j := range users { - if _, err := Client.AddChannelMember(channel.Id, users[j].Id); err != nil { + if _, err := th.BasicClient.AddChannelMember(channel.Id, users[j].Id); err != nil { b.Fatal(err) } } @@ -223,23 +216,24 @@ func BenchmarkAddChannelMember(b *testing.B) { // Is this benchmark failing? Raise your file ulimit! 2048 worked for me. func BenchmarkRemoveChannelMember(b *testing.B) { + th := Setup().InitBasic() + var ( NUM_USERS = 140 NUM_USERS_RANGE = utils.Range{NUM_USERS, NUM_USERS} ) - team, _, _ := SetupBenchmark() - channel := &model.Channel{DisplayName: "Test Channel", Name: "a" + model.NewId() + "a", Type: model.CHANNEL_OPEN, TeamId: team.Id} - channel = Client.Must(Client.CreateChannel(channel)).Data.(*model.Channel) + channel := &model.Channel{DisplayName: "Test Channel", Name: "a" + model.NewId() + "a", Type: model.CHANNEL_OPEN, TeamId: th.BasicTeam.Id} + channel = th.BasicClient.Must(th.BasicClient.CreateChannel(channel)).Data.(*model.Channel) - userCreator := NewAutoUserCreator(Client, team.Id) + userCreator := NewAutoUserCreator(th.BasicClient, th.BasicTeam) users, valid := userCreator.CreateTestUsers(NUM_USERS_RANGE) if valid == false { b.Fatal("Unable to create test users") } for i := range users { - if _, err := Client.AddChannelMember(channel.Id, users[i].Id); err != nil { + if _, err := th.BasicClient.AddChannelMember(channel.Id, users[i].Id); err != nil { b.Fatal(err) } } @@ -248,7 +242,7 @@ func BenchmarkRemoveChannelMember(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { for j := range users { - if _, err := Client.RemoveChannelMember(channel.Id, users[j].Id); err != nil { + if _, err := th.BasicClient.RemoveChannelMember(channel.Id, users[j].Id); err != nil { b.Fatal(err) } } @@ -256,12 +250,13 @@ func BenchmarkRemoveChannelMember(b *testing.B) { } func BenchmarkUpdateNotifyProps(b *testing.B) { + th := Setup().InitBasic() + var ( NUM_CHANNELS_RANGE = utils.Range{NUM_CHANNELS, NUM_CHANNELS} ) - team, user, _ := SetupBenchmark() - channelCreator := NewAutoChannelCreator(Client, team.Id) + channelCreator := NewAutoChannelCreator(th.BasicClient, th.BasicTeam) channels, valid := channelCreator.CreateTestChannels(NUM_CHANNELS_RANGE) if valid == false { b.Fatal("Unable to create test channels") @@ -272,7 +267,7 @@ func BenchmarkUpdateNotifyProps(b *testing.B) { for i := range data { newmap := map[string]string{ "channel_id": channels[i].Id, - "user_id": user.Id, + "user_id": th.BasicUser.Id, "desktop": model.CHANNEL_NOTIFY_MENTION, "mark_unread": model.CHANNEL_MARK_UNREAD_MENTION, } @@ -283,7 +278,7 @@ func BenchmarkUpdateNotifyProps(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { for j := range channels { - Client.Must(Client.UpdateNotifyProps(data[j])) + th.BasicClient.Must(th.BasicClient.UpdateNotifyProps(data[j])) } } } |