Skip to content

Commit e38267a

Browse files
author
Louis-Philippe Huberdeau
committed
Include tracking properties in the HAR to identify which test the requests were associated to
1 parent 7d147f6 commit e38267a

File tree

3 files changed

+24
-7
lines changed

3 files changed

+24
-7
lines changed

lib/controller/checks.py

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -162,6 +162,13 @@ def checkSqlInjection(place, parameter, value):
162162
unionExtended = False
163163
trueCode, falseCode = None, None
164164

165+
if conf.httpCollector is not None:
166+
conf.httpCollector.setExtendedArguments({
167+
"_title": title,
168+
"_place": place,
169+
"_parameter": parameter,
170+
})
171+
165172
if stype == PAYLOAD.TECHNIQUE.UNION:
166173
configUnion(test.request.char)
167174

lib/core/threads.py

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -38,8 +38,6 @@ def reset(self):
3838
Resets thread data model
3939
"""
4040

41-
self.requestCollector = None
42-
4341
self.disableStdOut = False
4442
self.hashDBCursor = None
4543
self.inTransaction = False

lib/utils/har.py

Lines changed: 17 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -29,9 +29,15 @@ def create(self):
2929
class HTTPCollector:
3030
def __init__(self):
3131
self.messages = BigArray()
32+
self.extendedArguments = {}
33+
34+
def setExtendedArguments(self, arguments):
35+
self.extendedArguments = arguments
3236

3337
def collectRequest(self, requestMessage, responseMessage, startTime=None, endTime=None):
34-
self.messages.append(RawPair(requestMessage, responseMessage, startTime, endTime))
38+
self.messages.append(RawPair(requestMessage, responseMessage,
39+
startTime=startTime, endTime=endTime,
40+
extendedArguments=self.extendedArguments))
3541

3642
def obtain(self):
3743
return {"log": {
@@ -41,31 +47,37 @@ def obtain(self):
4147
}}
4248

4349
class RawPair:
44-
def __init__(self, request, response, startTime=None, endTime=None):
50+
def __init__(self, request, response, startTime=None, endTime=None, extendedArguments=None):
4551
self.request = request
4652
self.response = response
4753
self.startTime = startTime
4854
self.endTime = endTime
55+
self.extendedArguments = extendedArguments or {}
4956

5057
def toEntry(self):
51-
return Entry(request=Request.parse(self.request), response=Response.parse(self.response), startTime=self.startTime, endTime=self.endTime)
58+
return Entry(request=Request.parse(self.request), response=Response.parse(self.response),
59+
startTime=self.startTime, endTime=self.endTime,
60+
extendedArguments=self.extendedArguments)
5261

5362
class Entry:
54-
def __init__(self, request, response, startTime, endTime):
63+
def __init__(self, request, response, startTime, endTime, extendedArguments):
5564
self.request = request
5665
self.response = response
5766
self.startTime = startTime or 0
5867
self.endTime = endTime or 0
68+
self.extendedArguments = extendedArguments
5969

6070
def toDict(self):
61-
return {
71+
out = {
6272
"request": self.request.toDict(),
6373
"response": self.response.toDict(),
6474
"cache": {},
6575
"timings": [],
6676
"time": int(1000 * (self.endTime - self.startTime)),
6777
"startedDateTime": "%s%s" % (datetime.datetime.fromtimestamp(self.startTime).isoformat(), time.strftime("%z")) if self.startTime else None
6878
}
79+
out.update(self.extendedArguments)
80+
return out
6981

7082
class Request:
7183
def __init__(self, method, path, httpVersion, headers, postBody=None, raw=None, comment=None):

0 commit comments

Comments
 (0)