Exemplo n.º 1
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***************")
Exemplo n.º 2
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!!!")
Exemplo n.º 3
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)