Невозможно запустить задачу Windows, которая делает запрос https под учетной записью SYSTEM. - PullRequest
0 голосов
/ 01 октября 2018

Я создал файл windows cmd, который вызывает три независимых файла bat.Я хочу создать задачу Windows, которая вызывает этот cmd-файл и запускается каждые 5 минут.Проблема в том, что эта задача отлично работает, только когда я вошел в систему. Но я не могу заставить эту задачу продолжать работать «вне зависимости от того, вошел я в систему или нет» .

Я даже попросил моего коллегу войти в систему на этом компьютере и запустить эту задачу под своей учетной записью - это сработало.Я создал локального администратора на этом компьютере, вошел в систему как этот пользователь, попытался выполнить эту задачу - она ​​не работала - скрипт ждет вечно, пока post_results.bat.Я даже пытался запланировать задание jenkins, которое в основном делает то же самое - оно не работало - задание jenkins ждет вечно, пока post_results.bat (я убил задание jenkins после ожидания ~ 20 минут).

ЗдесьВот краткое описание того, что делают эти задачи:

run_all.cmd

call "run_test.bat"
call "post_results.bat"
call "clean.bat"

run_test.bat - выполняет сценарий jmeter

C:\Users\Administrator\LS2\apache-jmeter-4.0\bin\jmeter -n -t api_strategy_synthetic_tests.jmx -JTestEnv=amer1 -l Result_log.jtl

post_results.bat - вызывает скрипт Python, который отправляет результаты теста jmeter в datadog

python post_jmeter_results_to_datadog.py Result_log.jtl

post_jmeter_results_to_datadog.py - используетdatadog Python API для публикации метрик в datadog

#!/usr/bin/env python3
import sys
import pandas as pd
from datadog import initialize, api

options = {
    'api_key': <API_KEY>,
    'app_key': <APPLICATION_KEY>
}
initialize(**options)

jtl_file = sys.argv[1]
df = pd.read_csv(jtl_file)
for index, row in df.iterrows():
    tag = "success:" + str(row['success'])
    api.Metric.send(
        metric=row['label'],
        points=[(row['timeStamp']/1000,row['elapsed'])],
        tags=[tag]
        )

clean.bat - удаляет файлы результатов теста jmeter

rmdir /s /q "errors"
del "jmeter.log"
del "Result_log.jtl"

Все, что мне нужно, это иметь возможностьзапускать эту задачу каждые 5 минут.Если кто-нибудь сможет увидеть, что я делаю неправильно, и укажет на это ... Я был бы очень благодарен.

1 Ответ

0 голосов
/ 08 октября 2018

Вы можете создать один сценарий PowerShell для удаленного выполнения ваших пакетных сценариев.И даже вы можете запланировать свой сценарий PowerShell с помощью планировщика задач Windows, который будет работать в соответствии с вашими настройками.

...