12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970 |
- # -*- coding: utf-8 -*-
- import contextlib
- import json
- import logging
- import socket
- import time
- import mmap
- import os, sys, time
- from multiprocessing import Lock
- from ssat_sdk import getRunnerTcpPort
- from ssat_sdk.utils import LoggingUtil
- # lock = Lock()
- _IsLoggerCreated = None
- def sendActionStart(testCaseName, stepIndex, stepName, stepDesc):
- actionStartMessage = {'ReportType': "ActionStart",
- 'data': {'testCaseName': testCaseName, 'stepIndex': stepIndex, 'stepName': stepName,
- 'stepDesc': stepDesc}}
- actionStartMessageJson = json.dumps(actionStartMessage)
- client(actionStartMessageJson)
- def sendActionResult(testCaseName, stepIndex, stepName, stepDesc, actionRet, failedReason, imageFileDir, videoFileDir,
- imageNameList, videoName, analysis):
- actionResultMessage = {'ReportType': "ActionFinish", 'data':
- {'testCaseName': testCaseName, 'stepIndex': stepIndex, 'stepName': stepName, 'stepDesc': stepDesc,
- 'actionRet': actionRet, 'failedReason': failedReason, 'imageFileDir': imageFileDir,
- 'videoFileDir': videoFileDir, 'imageName': imageNameList, 'videoName': videoName, 'analysis': analysis}}
- actionResultMessageJson = json.dumps(actionResultMessage)
- client(actionResultMessageJson)
- def sendCaseResult(testCaseName, stepIndex, caseResult, failedReason, logFileDir, logName):
- caseResultMessage = {'ReportType': "CaseFinish",
- 'data': {'testCaseName': testCaseName, 'stepIndex': stepIndex, 'caseResult': caseResult,
- 'failedReason': failedReason, 'logFileDir': logFileDir, 'logName': logName}}
- caseResultMessageJson = json.dumps(caseResultMessage)
- client(caseResultMessageJson)
- time.sleep(1) # 确保程序结束时结果能发送成功。
- def client(message):
- # lock.acquire()
- # tcp方式传结果给Runner端
- LoggingUtil.caseResult(message)
- sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
- port = getRunnerTcpPort()
- try:
- sock.connect(('127.0.0.1', port))
- sock.sendall(message)
- except Exception, e:
- print u"无Runner接收结果。Error:", e, ' runner_sender_port:', port
- finally:
- sock.close()
- # 内存共享方式
- # LoggingUtil.caseResult(message)
- # with contextlib.closing(mmap.mmap(-1, 4096, tagname='caseresult', access=mmap.ACCESS_WRITE)) as m:
- # # for i in range(1, 10001):
- # m.seek(0)
- # m.write(message)
- # m.flush()
- # lock.release()
- # time.sleep(1)
|