learning more… the above error is a red herring. The json parse problem comes because an invalid response was received due to the previously determined 401 Unauthorized.
The Response:
401 - Unauthorized: Access is denied due to invalid credentials.
Server Error
401 - Unauthorized: Access is denied due to invalid credentials.
You do not have permission to view this directory or page using the credentials that you supplied.
And looking at the server that I’m calling to, I can see the requests and response code:
2018-02-07 22:27:37 IP_redacted POST /AnalyticsServices/AccruedInterest/CalcAccruedInterest - 443 - IP2_redacted PostmanRuntime/7.1.1 - 401 2 5 0
2018-02-07 22:27:37 IP_redacted POST /AnalyticsServices/AccruedInterest/CalcAccruedInterest - 443 DOMAIN\User IP2_redacted PostmanRuntime/7.1.1 - 200 0 0 42
2018-02-07 22:27:37 IP_redacted POST /AnalyticsServices/AccruedInterest/CalcAccruedInterest - 443 DOMAIN\User IP2_redacted PostmanRuntime/7.1.1 - 200 0 0 26
2018-02-07 22:27:37 IP_redacted POST /AnalyticsServices/AccruedInterest/CalcAccruedInterest - 443 - IP2_redacted PostmanRuntime/7.1.1 - 401 1 2148074248 0
2018-02-07 22:27:37 IP_redacted POST /AnalyticsServices/AccruedInterest/CalcAccruedInterest - 443 - IP2_redacted PostmanRuntime/7.1.1 - 401 1 2148074248 0
2018-02-07 22:27:37 IP_redacted POST /AnalyticsServices/AccruedInterest/CalcAccruedInterest - 443 - IP2_redacted PostmanRuntime/7.1.1 - 401 1 2148074248 0
The first two succeed with status 200 (and also w/ credentials being passed). Subsequent requests return 401 and I can see no credentials being passed.
So, it seems like the Runner process is not sending the NTLM credentials correctly at each iteration, except when I do the weird workaround where I run 2, then run 3 and then run the test.
Incidentally, when I do that, I can see each succeeding request does indeed have user details specified:
2018-02-07 22:10:12 IP_redacted POST /AnalyticsServices/AccruedInterest/CalcAccruedInterest - 443 - IP2_redacted PostmanRuntime/7.1.1 - 401 2 5 0
2018-02-07 22:10:12 IP_redacted POST /AnalyticsServices/AccruedInterest/CalcAccruedInterest - 443 DOMAIN\USER IP2_redacted PostmanRuntime/7.1.1 - 200 0 0 46
2018-02-07 22:10:12 IP_redacted POST /AnalyticsServices/AccruedInterest/CalcAccruedInterest - 443 DOMAIN\USER IP2_redacted PostmanRuntime/7.1.1 - 200 0 0 31
2018-02-07 22:10:20 IP_redacted POST /AnalyticsServices/AccruedInterest/CalcAccruedInterest - 443 DOMAIN\USER IP2_redacted PostmanRuntime/7.1.1 - 200 0 0 15
2018-02-07 22:10:20 IP_redacted POST /AnalyticsServices/AccruedInterest/CalcAccruedInterest - 443 DOMAIN\USER IP2_redacted PostmanRuntime/7.1.1 - 200 0 0 13
2018-02-07 22:10:20 IP_redacted POST /AnalyticsServices/AccruedInterest/CalcAccruedInterest - 443 DOMAIN\USER IP2_redacted PostmanRuntime/7.1.1 - 200 0 0 31
2018-02-07 22:10:28 IP_redacted POST /AnalyticsServices/AccruedInterest/CalcAccruedInterest - 443 DOMAIN\USER IP2_redacted PostmanRuntime/7.1.1 - 200 0 0 19
2018-02-07 22:10:28 IP_redacted POST /AnalyticsServices/AccruedInterest/CalcAccruedInterest - 443 DOMAIN\USER IP2_redacted PostmanRuntime/7.1.1 - 200 0 0 31
2018-02-07 22:10:28 IP_redacted POST /AnalyticsServices/AccruedInterest/CalcAccruedInterest - 443 DOMAIN\USER IP2_redacted PostmanRuntime/7.1.1 - 200 0 0 31