Custom log parsing for unit tests / regression tests?
Apologies if this is the wrong forum but it seems to be the one most likely to have the right people in it.
I'm trying to build regression testing, of a sort, based on our combat logs.
Let's take Morchok-Heroic for example and from the perspective of myself as an Elemental shaman.
General criteria:
1) What percentage of the fight did I stay alive?
2) How many battle rezzes did I take?
3) How much damage did I take?
Mechanical criteria:
1) What was my lightning shield uptime?
2) What was my flametongue weapon uptime?
3) What was my flame shock uptime?
4) How many non-crit lava bursts did I cast?
5) How much time did I spend with a 9-stack of fulmination?
6) Average effective cooldown on Elemental Mastery (e.g. if I cast it once every 3 minutes, the effective cooldown is 3 minutes.)
Tier set criteria:
1) What was my T13 4pc uptime?
Performance criteria for every damage spell/proc:
1) Number of casts
2) Number of crits
3) Number of mastery procs
Performance criteria for every proc / buff / debuff (e.g. Rathrak, trinkets, Elemental Mastery):
1) Uptime
2) Number of procs
Fight-based criteria:
1) Number of stomps where I did not take damage / % where I did
2) Number of crystal explosions where I did not take damage / % where I did
---
Sorry for the wall of text, but basically I'd like to collect those stats (and the others that I'm forgetting) so I can track my performance from attempt to attempt and week to week. It's easy for me to see if my dps is going up or down but the why of it is not always obvious (and subtle changes are harder to see, of course.)
Eventually I'd like to expand this to every fight and class so that all of the raiders in my guild (and other guilds - I'd release this as open source, of course!) can track and test to see if their gear changes / UI changes / rotation changes / etc are bearing objective improvements.
My language of first choice is Python but I'm flexible. I haven't found anything to build on except apostasis - WoWSPI seemed useful but it seems to be pre-v3 parsing and therefore less than useful.
Tips and suggestions for individual "tests" and how to calculate them out of the combat log would be great; right now I'm trying to figure out a problem that it seems that everyone solves once --- when did combat start and when did it end and was it a boss fight.