Beispiel #1
0
class LoginTest(unittest.TestCase):

    do_excel = DoExcel(c02_contants.case_file)  # 传入cases.xlsx
    cases = do_excel.read('login')
    request = Request()  # 实例化对象

    def setUp(self):
        pass

    @data(*cases)
    def test_login(self, case):
        logger.info('开始执行第{0}条用例'.format(case.case_id))
        # 使用封装好的request 来完成请求
        resp = self.request.request1(case.method, case.url,
                                     case.data)  # request成为成员变量,用self调用
        # 将返回结果和期望结果进行匹配
        try:
            self.assertEqual(case.expected, resp.text, 'login error')
            # 一致就写入Excel的结果为PASS
            self.do_excel.write_back('login', case.case_id + 1, resp.text,
                                     'PASS')  # do_excel成为类变量,用self调用
            logger.info('第{0}条用例执行结果:PASS'.format(case.case_id))
        except AssertionError as e:
            self.do_excel.write_back('login', case.case_id + 1, resp.text,
                                     'FAILED')
            logger.error('第{0}条用例执行结果:Failed'.format(case.case_id))
            raise e

    def tearDown(self):
        pass
class TestRegister(unittest.TestCase):
    do_excel = DoExcel(c02_contants.case_file)
    register_test_data = do_excel.read('register')
    request = Request()

    def setUp(self):

        self.mysql = MysqlUtil(return_dict=True)  # 创建数据连接
        sql = "select max(mobilephone) as max_phone from future.member"  # 查询最大手机号
        self.max = self.mysql.fetch_one(sql)['max_phone']  # 值为元祖,根据下标取到电话号码

    @data(*register_test_data)
    def test_register(self, case):
        #参数的处理
        logger.info('开始执行第{0}条用例'.format(case.case_id))
        data = case.data
        import json
        data = json.loads(data)  # 返回一个字典
        if data['mobilephone'] == '${register_mobile}':  # 根据key,进行替换
            data['mobilephone'] = int(self.max) + 1
        # 使用封装好的request1来完成请求
        resp = self.request.request1(case.method, case.url,
                                     data)  # data 转换出来的字典传进去
        try:
            self.assertEqual(case.expected, resp.text, 'register error')

            # 数据库查询数据校验
            # 注册成功,手机号等于注册时的手机号data['mobilephone']
            if resp.json()['msg'] == '注册成功':
                sql = 'select * from future.member where mobilephone = {0} '\
                      .format(data['mobilephone'])
                results = self.mysql.fetch_all(sql)
                # 1.首先判断是否有成功插入数据,判断列表的长度,注册成功就会有一条数据
                self.assertEqual(1, len(results))
                member = results[0]  # 获取到这一条数据,是一个字典
                # 2.判断注册成功余额应该是0
                self.assertEqual(0, member['LeaveAmount'])
                # 3.判断会员的类型Type(0,1,2)
                # 4.判断昵称,传进来的名字或者是默认的昵称

            self.do_excel.write_back('register', case.case_id + 1, resp.text,
                                     'PASS')
            logger.info('第{0}条用例执行结果:PASS'.format(case.case_id))
        except AssertionError as e:
            self.do_excel.write_back('register', case.case_id + 1, resp.text,
                                     'FAILED')
            logger.error('第{0}条用例执行结果:Failed'.format(case.case_id))
            raise e

    def tearDown(self):
        self.mysql.close()
Beispiel #3
0
class APITest(unittest.TestCase):

    do_excel = DoExcel(c02_contants.case_file) # 传入cases.xlsx
    login_cases = do_excel.read('login')
    register_cases = do_excel.read('register')
    request = Request() # 实例化对象

    @unittest.skip("不要运行")
    @data(*login_cases)
    def test_login(self,case):
            print('开始执行第{0}条用例'.format(case.case_id))
            # 使用封装好的request1 来完成请求
            resp = self.request.request1(case.method,case.url,case.data)
            # 将返回结果和期望结果进行匹配
            try:
                self.assertEqual(case.expected,resp.text,'login error')
                # 一致就写入Excel的结果为PASS
                self.do_excel.write_back('login',case.case_id+1,resp.text,'PASS') #类变量,用self调用
                print('第{0}条用例执行结果:PASS'.format(case.case_id))
            except AssertionError as e:
                self.do_excel.write_back('login',case.case_id+1,resp.text,'FAILED')
                print('第{0}条用例执行结果:Failed'.format(case.case_id))
                raise e

    def setUp(self):

        mysql = MysqlUtil()                                          # 创建数据连接
        self.sql = "select max(mobilephone) from future.member"    # 查询最大手机号  # 最大手机号为18999999999时,再加1成19000000000就不再是手机号码了,要删数据
        self.max= mysql.fetch_one(self.sql)[0]                       # 值为元祖,根据下标取到电话号码
        print(type(max))
    @data(*register_cases)
    def test_register(self,case):
            print('开始执行第{0}条用例'.format(case.case_id))
            import json
            data_dict = json.loads(case.data)
            if data_dict['mobilephone'] == '${register_mobile}':
                data_dict['mobilephone'] = int(self.max) + 1
            # 使用封装好的request 来完成请求
            resp = self.request.request1(case.method,case.url,data_dict)
            # 将返回结果和期望结果进行匹配
            try:
                self.assertEqual(case.expected,resp.text,'register error')
                # 一致就写入Excel的结果为PASS
                self.do_excel.write_back('register',case.case_id+1,resp.text,'PASS') #类变量,用self调用
                print('第{0}条用例执行结果:PASS'.format(case.case_id))
            except AssertionError as e:
                self.do_excel.write_back('register',case.case_id+1,resp.text,'FAILED')
                print('第{0}条用例执行结果:Failed'.format(case.case_id))
                raise e
Beispiel #4
0
        sheet=self.workbook[sheet_name]
        sheet.cell(row,7).value=actual#写入实际结果到第7列单元格里面去
        sheet.cell(row,8).value=result#写入执行结果到第8列单元格里面去
        self.workbook.save(self.file_name)#要记得保存,同时要记得Excel要关闭状态

if __name__=='__main__':
    from common import c02_contants
    from common.c03_request import Request
    #test_data=DoExcel('..//datas//testcase.xlsx').read('login')
    do_excel=DoExcel(c02_contants.case_file)
    test_data=do_excel.read('login')
    print(test_data)

    # #Test_data=DoExcel('..//datas//testcase.xlsx').write_back('login',2,'hao','PASS')

    request=Request() # 实例化对象
    for case in test_data:
        #参数的处理
        #print(type(case.data),case.data)
        resp= request.request1(case.method,case.url,case.data)
        # print(resp.json()) # 把Excel表中的data数据转成字典  ,
        # 在request模块里面在request1方法里面将字符串转化为字典,令每一个不同的case都直接已转换成字典
        if resp.text==case.expected:
            do_excel.write_back('login',case.case_id+1,resp.text,'PASS')
            print("第{0}条用例执行结果:PASS".format(case.case_id))
        else:
            do_excel.write_back('login',case.case_id+1,resp.text,'FAILED')
            print("第{0}条用例执行结果:Failed".format(case.case_id))


Beispiel #5
0
from common.c01_do_excel import DoExcel
from common import c02_contants
from common.c03_request import Request

do_excel = DoExcel(c02_contants.case_file)
test_data = do_excel.read('login')
request = Request()  #
for case in test_data:
    #参数的处理
    print('开始执行第{0}条用例'.format(case.case_id))
    resp = request.request1(case.method, case.url, case.data)
    print('method', case.method)
    print('url', case.url)
    print('data', case.data)
    print(resp.json())
    if resp.text == case.expected:
        do_excel.write_back('login', case.case_id + 1, resp.text, 'PASS')
        print('第{0}条用例执行结果:PASS'.format(case.case_id))
    else:
        do_excel.write_back('login', case.case_id + 1, resp.text, 'FAILED')
        print('第{0}条用例执行结果:Failed'.format(case.case_id))
Beispiel #6
0
 def setUpClass(cls):
     logger.debug('\n这是一个类方法')
     cls.request = Request()  #
     cls.mysql = MysqlUtil()
 def setUpClass(cls):  # 继承unittest.TestCase里面的类方法,每个测试类里面去运行的操作,放到类方法里面
     print('\n这是一个类方法')
     cls.request = Request()  # 实例化一个Request类对象 # 类方法,只执行一次,整个类只执行一次