Ejemplo n.º 1
0
 def __init__(self):
     self.scheme = conf.get_bs("SCHEME")
     self.ip = conf.get_bs("IP")
     self.port = conf.get_bs("PORT")
     self.timeout = conf.get_bs("TIMEOUT")
     self.log = MyLog().get_logger()
     self.headers = {}
     self.data = {}
     self.url = None
     self.files = {}
     self.state = 0
     self.s = requests.session()
Ejemplo n.º 2
0
 def __init__(self):
     """
     初始化
     """
     self.dns = cx_Oracle.makedsn(ip, post, service_name)
     self.conn = None
     self.cursor = None
     self.log = MyLog.get_log()
     self.logger = self.log.get_logger()
Ejemplo n.º 3
0
 def selenium_get_url(self, url):
     try:
         self.selenium.get('about:blank')
         self.selenium.get(str(url))
     except Exception as ex:
         log = MyLog.get_log()
         logger = log.get_logger()
         logger.error("Can not open the url:[{}]".format(url))
         raise ex
     return self
Ejemplo n.º 4
0
 def setUp(self):
     """
     测试用例开始前布置环境,查询车辆的vehicleId,记录日志
     :return:
     """
     self.log = MyLog.get_log()
     self.logger = self.log.get_logger()
     sql = "SELECT VEHICLE_ID FROM V_VEHICLEINFO WHERE ID_NUMBER  LIKE '%s'" % rc.get_vehicle(
         "ID_NUMBER")
     vid = orc.executeSQL(sql)
     self.vehicleIds = orc.get_one(vid)[0]
     print(self.vehicleIds)
Ejemplo n.º 5
0
 def __init__(self):
     self.scheme = rc.get_bs("SCHEME")
     self.ip = rc.get_bs("IP")
     self.port = rc.get_bs("POST")
     self.timeout = rc.get_bs("TIMEOUT")
     self.log = MyLog.get_log()
     self.logger = self.log.get_logger()
     self.headers = {}
     self.data = {}
     self.url = None
     self.files = {}
     self.state = 0
Ejemplo n.º 6
0
class RunTest(object):
    def __init__(self):
        self.log = MyLog().get_logger()
        self.result_path = MyLog().get_result_path()
        self.case_list_file = os.path.join(ReadConfig.conf_path, "caselist.txt")
        self.case_file = os.path.join(ReadConfig.proDir, "test_case")
        self.case_list = []

    def get_case_list(self):
        with open(self.case_list_file) as f:
            for case in f.readlines():
                dcase = case.replace('\n', '')
                if not dcase.startswith('#') and dcase != '':
                    self.case_list.append(dcase)

        return self.case_list

    def get_case_suite(self):
        self.get_case_list()
        test_suite = unittest.TestSuite()
        suite_module = []
        for case in self.case_list:
            discover = unittest.defaultTestLoader.discover(self.case_file, pattern=case + ".py", top_level_dir=None)
            suite_module.append(discover)

        # length jugment have problem
        if len(suite_module) > 0:
            for suite in suite_module:
                for test_name in suite:
                    test_suite.addTest(test_name)
        else:
            return None
        return test_suite

    def run(self):
        try:
            suite = self.get_case_suite()
            print ("suite:", suite)
            if suite is not None:
                self.log.info("*************TEST START*************")
                f = open(self.result_path, 'wb')
                runner = HTMLTestRunner.HTMLTestRunner(stream=f, title='Test Report', description='Test Description', verbosity=2)
                runner.run(suite)
                f.close()
            else:
                self.log.info("Have no test case!")
        except Exception as e:
            self.log.error(str(e))
        finally:
            self.log.info("*************TEST END***************")
Ejemplo n.º 7
0
class AssertResult(object):
    __log = MyLog("AssertResult").logger
    __response = None

    def __init__(self):
        pass

    def assert_body(self, json_: str):
        """
        断言请求的json格式的字符串,以断言请求是否成功
        :param json_: 请求返回的json的字符串
        :return:
        """
        try:
            result_list = []
            dict_object = json.loads(json_)
            self.__log.info("http请求发送成功")
            result_list.append(True)
            result_list.append(dict_object)
            return result_list
        except Exception:
            return False

    def judge_code(self, status: int, json_: str):
        """
        对响应的status进行断言
        :param status:
        :param json_:
        :return:
        """
        void = self.assert_body(json_)
        if void:
            dict_obj = void[1]
            try:
                if dict_obj["status"] == status:
                    self.__log.info("断言正常,status为{}".format(status))
                    return True
                else:
                    self.__log.warning(
                        "业务不正常,status 不满足0" +
                        "-----当前的status的值为{}".format(dict_obj["status"]))
                    return False
            except Exception as e:
                self.__log.error("服务器返回出错,json体中没有status字段+\n+{}".format(e))
                return False
        else:
            self.__log.error("xxxxx")
Ejemplo n.º 8
0
 def __init__(self):
     """
     初始化需要的参数
     :return:
     """
     global log, logger, resultPath
     # log初始化
     log = MyLog.get_log()
     self.logger = log.get_logger()
     # 定义结果保存路径
     self.resultPath = log.get_report_path()
     # 取得config\caselist.txt文件路径
     self.caseListFile = os.path.join(ReadConfig.conf_path, "caselist.txt")
     # 取得test_case文件路径
     self.caseFile = os.path.join(ReadConfig.proDir, "test_case")
     # 定义一个空列表,用于保存类名
     self.caseList = []
Ejemplo n.º 9
0
 def __init__(self):
     """
     初始化需要的参数
     :return:
     """
     global log, logger, resultPath
     # log初始化
     log = MyLog.get_log("[%s]" % os.path.basename(__file__))
     self.logger = log.get_logger()
     # 定义结果保存路径
     self.resultPath = log.get_report_path()
     # 取得test_case文件路径
     self.caseFile = os.path.join(TEST_CASE_TOP_DIR, "web_test_case")
     # 获取配置文件中的EXCEL路径
     self.xls_path = TEST_DATA_EXCEL_FILE
     self.sheet_name = "INDEX"
     # 定义一个空列表,用于保存类名
     self.caseList = []
Ejemplo n.º 10
0
# @Time    : 2019/9/3 14:22
# @Author  : chenky
# @ProjectName :ship_20190828
# @FileName: FaceEngine.py
# @Software: PyCharm
import base64
import hashlib
import json
import time
import uuid

import requests

from public.Log import MyLog

_log = MyLog("FaceEngine").logger


class FaceEngine(object):
    __apiKey = "48d534fc6e7f451ca376baaa750729fc"
    __session = requests.session()

    def __init__(self, host):
        self.partner_add = "api/face/partner/add"
        self.partner_update = "api/face/partner/update"
        self.partner_disable = "api/face/partner/disable"
        self.partner_enable = "api/face/partner/enable"
        self.partner_query = "api/face/partner/query"
        self.group_add = "api/face/group/add"
        self.group_update = "api/face/group/update"
        self.group_delete = "api/face/group/delete"
Ejemplo n.º 11
0
import paramunittest
from public import GetData
import unittest
from public.Log import MyLog
import time

inscase = GetData.get_xls("test_case.xlsx", "mycase")
log = MyLog().get_logger()


@paramunittest.parametrized(*inscase)
class Getdata(unittest.TestCase):
    def setParameters(self, caseName, method, vehicleIds, cmdCode, cmdVal,
                      sendTitle, paramCode, paramName, Id):
        self.caseName = caseName
        self.method = method
        self.vehicleIds = vehicleIds
        self.cmdCode = cmdCode
        self.cmdVal = cmdVal
        self.sendTitle = sendTitle
        self.paramCode = paramCode
        self.paramName = paramName
        self.Id = Id

    def setUp(self):
        print "begin test-------------"

    def test_getdata(self):
        time.sleep(1)
        print "caseName:%s \n method:%s \n vehicleIds:%s \n cmdCode:%s \n cmdVal:%s \n sendTitle:%s \n paramCode:%s \n paramName:%s \n Id:%s \n " % (
            self.caseName, self.method, self.vehicleIds, self.cmdCode,
Ejemplo n.º 12
0
# -*- coding: utf-8 -*-
# @Time    : 2019/9/30 10:17
# @Author  : chenky
# @ProjectName :script
# @FileName: test_face_compare_images.py
# @Software: PyCharm

import pytest
import time

from config.Config import PATH
from public.Assert import AssertResult
from public.Log import MyLog
from public.ReadYaml import ReadYamlUtils
from public.Request_tools import RequestTools
_log = MyLog("TestCompareImages").logger


class TestCompareImages(object):
    data = ReadYamlUtils(PATH("../test_data/3_face_compare_pictures.yaml"))
    __data1 = data.read_data_for_face_detect(PATH("../public/img"),
                                             PATH("../public"))["cases"]
    server = RequestTools()

    @pytest.mark.parametrize("data_engine", __data1)
    @pytest.mark.run(order=2)
    def test_01(self, data_engine):
        method = self.data.read_data()["method"]
        url = self.data.read_data()["url"] + self.data.read_data()["sign"]
        headers = self.server.get_header(self.data.read_data()["sign"])
        body = data_engine["body"]
Ejemplo n.º 13
0
class Http(object):

    def __init__(self):
        self.scheme = conf.get_bs("SCHEME")
        self.ip = conf.get_bs("IP")
        self.port = conf.get_bs("PORT")
        self.timeout = conf.get_bs("TIMEOUT")
        self.log = MyLog().get_logger()
        self.headers = {}
        self.data = {}
        self.url = None
        self.files = {}
        self.state = 0
        self.s = requests.session()

    def set_url(self, url):
        """
        接口路径及名称
        :param url:
        :return:
        """
        self.url = "%s://%s:%s%s" % (self.scheme, self.ip, self.port, url)

    def set_headers(self, header):
        """

        :param header:
        :return:
        """
        self.headers = header

    def set_data(self, data):
        """

        :param data: JSON/params
        :return:
        """
        self.data = data

    def get(self):
        """
        GET请求
        :return:
        """
        try:
            response = self.s.get(self.url, headers=self.headers, timeout=float(self.timeout))
            return response
        except Exception as e:
            self.log.error(e)
            return None

    def post(self):
        """
        POST请求
        :return:
        """
        try:
            response = self.s.post(self.url, data=self.data, headers=self.headers, timeout=float(self.timeout))
            return response
        except Exception as e:
            self.log.error(e)
            return None

    def set_cookies(self, c):
        """

        :param c: 获取的jsessionID
        :return:
        """
        requests.utils.add_dict_to_cookiejar(self.s.cookies, c)
Ejemplo n.º 14
0
# @Time    : 2019/9/27 10:57
# @Author  : chenky
# @ProjectName :script
# @FileName: test_face_detect.py
# @Software: PyCharm
import json

import pytest
import time

from config.Config import PATH
from public.Assert import AssertResult
from public.Log import MyLog
from public.ReadYaml import ReadYamlUtils
from public.Request_tools import RequestTools
_log = MyLog("TestFaceDetect").logger


class TestFaceDetect(object):
    data = ReadYamlUtils(PATH("../test_data/1_face_identify.yaml"))
    __data1 = data.read_data_for_face_detect(PATH("../public/img"),
                                             PATH("../public"))["cases"]
    server = RequestTools()

    @pytest.mark.parametrize("data_engine", __data1)
    @pytest.mark.run(order=2)
    def test_01(self, data_engine):
        method = self.data.read_data()["method"]
        url = self.data.read_data()["url"] + self.data.read_data()["sign"]
        headers = self.server.get_header(self.data.read_data()["sign"])
        body = data_engine["body"]
Ejemplo n.º 15
0
# -*- coding: utf-8 -*-
# @Time    : 2019/9/30 11:28
# @Author  : chenky
# @ProjectName :script
# @FileName: test_face_search_features.py
# @Software: PyCharm
import pytest
import time

from config.Config import PATH
from public.Assert import AssertResult
from public.Log import MyLog
from public.ReadYaml import ReadYamlUtils
from public.Request_tools import RequestTools

_log = MyLog("TestFaceSearchFeatures").logger


class TestFaceSearchFeatures(object):
    data = ReadYamlUtils(PATH("../test_data/6_face_search_features.yaml"))
    __data1 = data.read_data_for_face_detect(
        PATH("../public/img"), PATH("../public/features"))["cases"]
    server = RequestTools()

    @pytest.mark.parametrize("data_engine", __data1)
    @pytest.mark.run(order=2)
    def test_01(self, data_engine):
        method = self.data.read_data()["method"]
        url = self.data.read_data()["url"] + self.data.read_data()["sign"]
        headers = self.server.get_header(self.data.read_data()["sign"])
        body = data_engine["body"]
Ejemplo n.º 16
0
# @Time    : 2019/10/8 15:47
# @Author  : chenky
# @ProjectName :script
# @FileName: produce_data.py
# @Software: PyCharm
import json
import uuid
from multiprocessing import Process
import time


from config.Config import ConfigUtils, PATH
from public.FaceEngine import FaceEngine
from public.Log import MyLog

_log = MyLog("produce_data").logger
_server = FaceEngine(ConfigUtils(PATH("../config/config.ini")).get_value_by_section_and_option("server", "engine_host"))

""" 1. 进行1个合作伙伴增加
    2.进行10个用户组(人脸库)的增加
    3.对每个用户组进行10W人脸数据的注册
    命名规则:
        伙伴名称:part+int
        组名(人脸库名):group+int
        人脸代码:伙伴名称+组名+int
        人脸名称:faceName
"""
_picture_path = "C:/chenkeyun/OtherFile/picture/"


def add_one_partner_group():
Ejemplo n.º 17
0
# @Time    : 2019/9/30 11:11
# @Author  : chenky
# @ProjectName :script
# @FileName: test_face_search_images.py
# @Software: PyCharm
import json

import pytest
import time

from config.Config import PATH
from public.Assert import AssertResult
from public.Log import MyLog
from public.ReadYaml import ReadYamlUtils
from public.Request_tools import RequestTools
_log = MyLog("TestFaceSearchImages").logger


class TestFaceSearchImages(object):
    data = ReadYamlUtils(PATH("../test_data/5_face_search_picture.yaml"))
    __data1 = data.read_data_for_face_detect(
        PATH("../public/img"), PATH("../public/features"))["cases"]
    server = RequestTools()

    @pytest.mark.parametrize("data_engine", __data1)
    @pytest.mark.run(order=2)
    def test_01(self, data_engine):
        method = self.data.read_data()["method"]
        url = self.data.read_data()["url"] + self.data.read_data()["sign"]
        headers = self.server.get_header(self.data.read_data()["sign"])
        body = data_engine["body"]
Ejemplo n.º 18
0
class TestInterface(unittest.TestCase):
    def setUp(self):
        self.log = MyLog().get_logger()
        self.log.info("Begin test!!!")
        self.mysql = MyDb.Mysql()

    def test_insert_one(self):
        sql = "insert into t_employee_info(name, sex, age, position, adress, description, update_time) values(%s, %s, %s, %s, %s, %s, %s)"
        dt = datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S")
        print dt
        params = ('李俊', '男', 26, '测试工程师', '雨花台区安德门龙福山庄', '门户活动测试工作', dt)
        self.mysql.insert_one(sql, params)
        self.mysql.dispose()
        try:
            self.assertEqual(1, 2, msg="insert one Failed")
        except Exception as err:
            self.log.error(err)

    def test_get_one(self):
        sql = "select * from test.t_employee_info"
        a = self.mysql.get_one(sql)
        self.mysql.dispose()
        for k, value in a.items():
            print k, value

    def test_get_many(self):
        sql = "select * from test.t_employee_info"
        a = self.mysql.get_many(sql, 2)
        self.mysql.dispose()
        for i in a:
            for k, value in i.items():
                print k, value

    def test_update(self):
        sql = 'update test.t_employee_info set name = \'李四\' where id = 1'
        self.mysql.update(sql)
        self.mysql.dispose()

    def test_insert_many(self):
        sql = "insert into t_employee_info(name, sex, age, position, adress, description, update_time) values(%s, %s, %s, %s, %s, %s, %s)"
        dt = datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S")
        print dt
        params = ('刘飞', '男', 26, '测试工程师', '雨花台区安德门龙福山庄', '门户活动测试工作', dt)
        self.mysql.insert_many(sql, params)
        self.mysql.dispose()

    def test_getdata_xls(self):
        for s in GetData.get_xls("test_case.xlsx", "mycase"):
            print s

    # def test_get_cookies(self):
    #     ht = Http()
    #     headers = {"Accept": "application/json, text/javascript, */*; q=0.01",
    #                "Accept-Encoding": "gzip, deflate",
    #                "Accept-Language": "zh-CN,zh;q=0.8",
    #                "User-Agent": "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) "
    #                              "Chrome/58.0.3029.81 Safari/537.36",
    #                'X-Requested-With': 'XMLHttpRequest',
    #                "Content-Type": "application/json;charset=UTF-8"
    #                }
    #     ht.set_headers(headers)
    #     ht.set_url("/icompaign/getVerifyCode")
    #     gr = ht.get()
    #     jsessionid = GetData.get_cookies(ht.url, "get", data=None)
    #     print gr.status_code
    #     print jsessionid
    #     cookies = {"JSESSIONID": jsessionid}
    #     ht.set_cookies(cookies)
    #
    #     ht.set_url("/icompaign/loginByPhone.view")
    #     data = {"phone": "18626330613", "code": "111111", "vCode": "4jjm"}
    #     data = json.dumps(data)
    #     ht.set_data(data)
    #     r = ht.post()
    #     print r.status_code
    #     print r.text

    def tearDown(self):
        self.log.info("End test!!!")
Ejemplo n.º 19
0
# @ProjectName :XiaMenTerminalWeb
# @FileName: Base.py
# @Software: PyCharm
import time
from selenium import webdriver
from selenium.webdriver import ActionChains
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.remote.webdriver import WebDriver
from selenium.webdriver.remote.webelement import WebElement
from selenium.webdriver.support import expected_conditions
from selenium.webdriver.support.select import Select
from selenium.webdriver.support.wait import WebDriverWait

from public.Log import MyLog
_log = MyLog("Base").logger


class Base(object):
    def __init__(self, driver_a: WebDriver):
        self.driver = driver_a
        self.timeout = 20
        self.t = 0.2
        super().__init__()

    def find_element(self, loc: tuple) -> WebElement:
        """
        By WebElement and WebDriver to find and click the expected element ,
        if not found ,then return
        else return the Element Object
        :param loc:
Ejemplo n.º 20
0
 def setUp(self):
     self.log = MyLog().get_logger()
     self.log.info("Begin test!!!")
     self.mysql = MyDb.Mysql()
Ejemplo n.º 21
0
# @Time    : 2019/9/30 9:18
# @Author  : chenky
# @ProjectName :script
# @FileName: test_get_features.py
# @Software: PyCharm

import allure
import pytest
import time

from config.Config import PATH
from public.Assert import AssertResult
from public.Log import MyLog
from public.ReadYaml import ReadYamlUtils
from public.Request_tools import RequestTools
_log = MyLog("TestGetFeatures").logger


# @allure.story("获取人脸特征模块")
class TestGetFeatures(object):
    data = ReadYamlUtils(PATH("../test_data/2_face_features_get.yaml"))
    __data1 = data.read_data_for_face_detect(PATH("../public/img"),
                                             PATH("../public"))["cases"]
    server = RequestTools()

    @pytest.mark.parametrize("data_engine", __data1)
    @pytest.mark.run(order=2)
    # @allure.testcase("测试标题")
    def test_01(self, data_engine):
        method = self.data.read_data()["method"]
        url = self.data.read_data()["url"] + self.data.read_data()["sign"]
Ejemplo n.º 22
0
 def __init__(self):
     self.log = MyLog().get_logger()
     self.result_path = MyLog().get_result_path()
     self.case_list_file = os.path.join(ReadConfig.conf_path, "caselist.txt")
     self.case_file = os.path.join(ReadConfig.proDir, "test_case")
     self.case_list = []
Ejemplo n.º 23
0
# -*- coding:utf-8 -*-
#__author:Administrator
#date: 2018/1/4
import os
import json
from public.MyHttp import Http
from xlrd import open_workbook
from public import ReadConfig
from public.Log import MyLog
import requests
import time

rc = ReadConfig.ReadConfig("808_config.ini")
ht = Http()
log = MyLog.get_log()
logger = log.get_logger()


def get_xls(xls_name, sheet_name):
    """
    获取excel表中指定sheet数据,保存到列表中返回
    :param xls_name: excel文件名
    :param sheet_name: sheet表名
    :return:
    """
    cls = []
    xls_path = os.path.join(ReadConfig.proDir, "test_case_data", xls_name)
    # print(xls_path)
    file = open_workbook(xls_path)
    sheet = file.sheet_by_name(sheet_name)
    sheet_nrows = sheet.nrows
Ejemplo n.º 24
0
# -*- coding: utf-8 -*-
# @Time    : 2019/9/26 17:00
# @Author  : chenky
# @ProjectName :script
# @FileName: Request_tools.py
# @Software: PyCharm
import hashlib
import json
import uuid

import requests
import time
from public.Log import MyLog

_log = MyLog("RequestTools").logger


class RequestTools(object):
    __apiKey = "48d534fc6e7f451ca376baaa750729fc"
    __apiKey_self = "6fb96353aff34a1186a29e6f038a7582"

    def __init__(self):
        self.session = requests.session()

    @staticmethod
    def get_uuid():
        return str(uuid.uuid1()).replace("-", "")

    @staticmethod
    def get_json_file(object_: dict):
        try:
Ejemplo n.º 25
0
# -*- coding: utf-8 -*-
# @Time    : 2019/9/26 17:50
# @Author  : chenky
# @ProjectName :script
# @FileName: ReadYaml.py
# @Software: PyCharm
import base64
import json
import yaml
import re

from public.Log import MyLog
from public.readConfig import PATH

_log = MyLog("ReadYamlUtils").logger


class ReadYamlUtils(object):
    def __init__(self, filename):
        self.filename = filename

    @staticmethod
    def get_image_to_base64(filename: str):
        try:
            with open(filename, mode="rb") as fp:
                imaga_data = fp.read()
                base64_data = base64.b64encode(imaga_data)
                return str(base64_data, encoding="utf-8")
        except FileNotFoundError:
            _log.error(FileNotFoundError.__name__)
Ejemplo n.º 26
0
# -*- coding: utf-8 -*-
# @Time    : 2019/9/30 10:38
# @Author  : chenky
# @ProjectName :script
# @FileName: test_face_compare_features.py
# @Software: PyCharm

import pytest
import time

from config.Config import PATH
from public.Assert import AssertResult
from public.Log import MyLog
from public.ReadYaml import ReadYamlUtils
from public.Request_tools import RequestTools
_log = MyLog("TestCompareFeatures").logger


class TestCompareFeatures(object):
    data = ReadYamlUtils(PATH("../test_data/4_face_compare_features.yaml"))
    __data1 = data.read_data_for_face_detect(
        PATH("../public/img"), PATH("../public/features"))["cases"]
    server = RequestTools()

    @pytest.mark.parametrize("data_engine", __data1)
    @pytest.mark.run(order=2)
    def test_01(self, data_engine):
        method = self.data.read_data()["method"]
        url = self.data.read_data()["url"] + self.data.read_data()["sign"]
        headers = self.server.get_header(self.data.read_data()["sign"])
        body = data_engine["body"]