#!/usr/bin/env python3 # -*- coding: utf-8 -*- import time import requests from Tester import Shadowsocks from Basis.Logger import logging from Basis.Functions import networkStatus def test(testObj: dict) -> None: logging.warning(testObj['title']) logging.debug('network status -> %s' % networkStatus()) testObj['client'].start() testObj['server'].start() time.sleep(1) errFlag = False try: request = requests.get( 'http://baidu.com', proxies = { 'http': 'socks5://127.0.0.1:%i' % testObj['socks']['port'], 'https': 'socks5://127.0.0.1:%i' % testObj['socks']['port'], }, timeout = 10 ) request.raise_for_status() logging.info('socks5 127.0.0.1:%i -> ok' % testObj['socks']['port']) except Exception as exp: logging.error('socks5 127.0.0.1:%i -> error' % testObj['socks']['port']) logging.error('requests exception\n' + str(exp)) errFlag = True testObj['client'].quit() testObj['server'].quit() if errFlag: logging.warning('client info') logging.error('command -> ' + str(testObj['client'].cmd)) logging.error('envVar -> ' + str(testObj['client'].env)) logging.error('file -> ' + str(testObj['client'].file)) logging.warning('client capture output') logging.error('\n' + str(testObj['client'].output)) logging.warning('server info') logging.error('command -> ' + str(testObj['server'].cmd)) logging.error('envVar -> ' + str(testObj['server'].env)) logging.error('file -> ' + str(testObj['server'].file)) logging.warning('server capture output') logging.error('\n' + str(testObj['server'].output)) testList = Shadowsocks.load(isExtra = True) for testObject in testList: test(testObject)