cjimison / barrage Goto Github PK
View Code? Open in Web Editor NEWScalable http load testing framework
License: MIT License
Scalable http load testing framework
License: MIT License
The random selection node should pick one node from all its children and execute that node. You can also set a "count" value as to how many times you want to randomly select the node.
It would also be cool if I added a field for "timed" wait. The idea would be you will randomly select a block on child nodes for up to N amount out time. This could simulate a game sessions or something alongs those lines.
Looks like when I move the inets:httpc to use profile based commands it broke cookies. I need to fix that.
The issue here is I want commanders to not have to know the actions they are executing. This way in theory we can just a have a bank of commanders running and the users will just start up their own general and tap into any commanders waiting around.
Now that I am running stuff, it would be great if I could get an actual report with the timing of the requests. This data should be able to feed into a graph. JSON maybe a good format given that I think I will just stick a front end over the load testing system in HTML
Not sure how important this is right now. But is would be great if I had support for https as well as http.
I want to be able to manipulate the data returned from the load test in the tree. Simple things.
Buttons at the top of the page appear in reverse order as defined in behaviors.json
Looks like the general is not sending off the attack requests to all the commanders except for the one it creates assuming it creates one. I need to figure out what went wrong here!
I want to be able to change the name of the data.json files so I can switch behavior sets without having to back up the file and do a bunch of crap like that.
Suggestion on how to make the webpage look a little nicer :)
Have a way to define behaviours that run every X seconds. For example: check inbox every 30 seconds.
Have a data source to choose certain request parameters. Let's say we could have a json file to choose random users at the login action. Or have another json to pick quest ids sequentially.
99.99% of server return JSON blobs these days. I should add some support for that...
It would be super cool if you can add a "behavior" as a child to a node. That way people can make stuff like "login" that may take 3 or for "actions" and then just reference that.
Right now all my config files are based off of erlang. It would be better if these were JSON based so I can show them off better.
Right now if a gunner gets stalled out or put in a bad state the whole commander is in lockdown. I really need to handle fault better in the commander given that this system is testing other systems so error should be expected.
On thing that really sucks at the moment is you don't get to see any results or know the status of you test until it is completed. Not a big problem if you test is short, but if it is long running this can be a very big problem. I need to refactor the system (and the web interface) to allow for streaming input data.
A lot of system uses cookies. I just need to support it.
In order to allow to do something like this: $USER.id
I should add conditional support node
Currently when the general gets the first message to "report_results" from a commander, it will assume that all testing is done. This will not work when there are multiple commanders.
This way the script can know how many times this has executed.
This should be a named param given from the user. If the name exists then the data is stored there.
Add a graph or table to show a breakdown of responses grouped by http code.
It was pointed out that I should add the ability to configure what port I server up http content for the general controller page. Shouldn't be that hard.
When the barrage_general gets a call for "issue_order" is should validate that it is not currently running an order.
Currently with the block run the sorted results sucks. I should log the order data is received by the gunners and sort based on that. This would give a better "time" prediction on what the response times are.
I need to add the license agreement to all the source files.
Apart from the graph per action, show a summary with more useful stats like: average, min, max , std dev.
Currently the system is very my way or the highway kind of thing. The only problem is this system is testing other systems that maybe buggy. I need to verify all incoming data (such as actions definitions, or JSON from servers), and if it fails, report it as a failure for the test. Not just fail the process which will hang the commanders and stall the generals.
I would like three things to start with.
The release build is not getting generated correctly. I need to get that setup up again!
This should support both a static and a random wait. In the future I may want to add support for a dynamic wait based on arguments given by the server but I need to think out the use case for that...
For many tests the server will return a value that will be need to be stored and then passed in later as an arg
I would like to have support for a basic barrage.config file. This should hold the following data:
I want to support a system kind of like how Riak does it. You startup the main know that will be the "general" then each addition node can be attached to it.
Currently I am only executing the root node of a behavior and I need to get the child processing working.
"wait" and "random_wait" actions could have a time factor either to accelerate or slow down time.
Example would be something like
http://localhost/users/<USER_NAME>/deck/<DECK_ID>/cards or what not.
Right now everything has to be configured via the config files. This is great but it assumes some understanding of how erlang reltools work (vm.config, sys.config). I want to make it possible for people to set these systems up faster without having to understand erlang systems.
From the looks of the graph, my httpc requests are pooling up. I think this is because all httpc calls are being sent to one gen_server that is executing the requests in order. This makes a lot of sense as to why my graphs tend to start off big and then tail down.
Using only master as a branch sucks and is stupid. Git-flow is awesome, is becoming a standard, and has tools around it. So use git-flow!!!
Right now if the general goes down, the commander will not know and if a test is running it can get screwed up.
add support for configuration to be broken up into Modules and imported into other Modules, so that complex configuration doesn't have to be one big honking blob of JSON
thanks!
The will allow for looping through a bunch of data sent from the server if needed.
The do action will execute an action N times. With N being a value passed into the args.
This would be good for preparing a DB with random data
I should come up with a use case that tests an oauth based session
Currently I am only support post commits. It would be great if I could support more http request types, but hey, lets start simple. Just a post would be nice :)
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.