Esempio n. 1
0
    def read_data(self,section):#section 配置文件里面的片段名  可以根据你的指定来执行具体的用例
        '''从Excel读取数据,有返回值'''
        case_id =ReadConfig(project_path.conf_path).get_data(section,'case_id')
        wb = load_workbook(self.file_name)
        sheet = wb[self.sheet_name]

        # 唯一的要求是什么?每一行数据要在一起{} [] ()
        # 如何把每一行的数据存在一个空间里面去?[]
        # 开始读取数据
        # 获取存在Excel里面的手机号码
        tel=self.get_tel()#自己传递表单进来
        test_data = []
        for i in range(2, sheet.max_row + 1):
            row_data = {}
            row_data['CaseId'] = sheet.cell(i, 1).value
            row_data['Module'] = sheet.cell(i, 2).value
            row_data['Title'] = sheet.cell(i, 3).value
            row_data['Url'] = sheet.cell(i, 4).value
            row_data['Method'] = sheet.cell(i, 5).value
            if sheet.cell(i, 6).value.find('tel')!=-1:#注意这个方法的使用以及返回值 也可以用成员运算符
                row_data['Params'] = sheet.cell(i, 6).value.replace('tel',str(tel))#替换值tel
                self.updata_tel(int(tel)+1)
            else:#如果没有tel这个子字符串  就不需要去替换了
                row_data['Params'] = sheet.cell(i, 6).value
            row_data['sql'] = sheet.cell(i, 7).value  # 加上去的sql语句
            row_data['ExpectedResult'] = sheet.cell(i, 7).value
            test_data.append(row_data)
        wb.close()
        final_data=[]  # 空列表 存储最终的测试用例数据
        if case_id == 'all':  # 如果case_id==all 那就获取所有的用例数据
            final_data=test_data  # 把测试用例赋值给final_data这个变量
        else:  # 否则  如果是列表 那就获取列表里面指定id的用例数据
            for i in case_id:  # 遍历case_id 里面的值
                final_data.append(test_data[i - 1])  # ? 对应关系??
        return final_data
Esempio n. 2
0
    def do_mysql(self,query,flag=1):
        '''
        :query表示sql查询语句
        :flag 标志1 获取一条数据  2获取多条数据'''
        db_config=ReadConfig(project_path.conf_path).get_data('DB','db_config')
        cnn=pymysql.connect(**db_config)#建立一个连接

        cursor=cnn.cursor()#获取游标,获取操作数据库的权限

        cursor.execute(query)#执行查询语句

        if flag==1:
            res=cursor.fetchone()#获取查询结果并且打印结果
        else:
            res=cursor.fetchall()
        return res
    def read_data(self):
        '''从excle读取数据,有返回值'''
        #从配置文件里面控制读取那些用例
        case_id = ReadConfig(project_path.conf_new_path).get_data(
            'CASEID', 'case_id')  #section是配置里面的片段名,可以根据你的指定来测试具体的用例
        wb = load_workbook(self.file_name)  #打开excle工作簿
        # 唯一的要求是什么?每一行数据要在一起 {} []
        # 如何把每一行的数据存到一个空间里面去? []
        # 开始读取数据
        # 获取存在excel里面的电话号码
        tel = self.get_tel()

        final_data = []  # 空列表  储存最终的测试用例数据
        for key in case_id:
            sheet_name = key  #字典的key就是表单名
            sheet = wb[sheet_name]  #获取一个表单对象
            test_data = []  # 存储每个表单的数据
            for i in range(2, sheet.max_row + 1):
                row_data = {}  #存放每一行的数据
                row_data['CaseId'] = sheet.cell(i, 1).value
                row_data['Module'] = sheet.cell(i, 2).value
                row_data['Title'] = sheet.cell(i, 3).value
                row_data['Url'] = sheet.cell(i, 4).value
                row_data['Method'] = sheet.cell(i, 5).value
                if sheet.cell(i,
                              6).value.find('tel') != -1:  #注意find这个方法的使用以及返回值
                    row_data['Params'] = sheet.cell(i, 6).value.replace(
                        'tel', str(tel))
                    self.update_tel(int(tel) + 1)  #注意 这里的tel获取的是字符串类型
                else:  # 如果没有tel这个子字符串  就不需要去替换了
                    row_data['Params'] = sheet.cell(i, 6).value
                row_data['ExpectedResult'] = sheet.cell(i, 7).value
                row_data[
                    'sheet_name'] = key  # 这里做个表单存储~~方便后面确定到底是执行哪个模块的用例写到哪些结果里面去
                test_data.append(row_data)

                #完成用例的可配置化

            if case_id[key] == 'all':  #如果case_id==all,那就获取所有测试用例
                final_data.extend(test_data)  #把测试用例赋值给final_data这个变量
            else:  #否则,如果是列表,那就获取列表里面指定id的用例数据
                for i in case_id[key]:
                    final_data.append(test_data[i - 1])  #?对应关系??
            wb.close()
        return final_data
Esempio n. 4
0
    def do_mysql(self, query, flag=1):
        '''
        :query sql查询语句
        :flag 标志 1 获取一条数据 2获取多条数据'''
        db_config = ReadConfig(project_path.conf_path).get_data(
            'DB', 'db_config')

        cnn = connector.connect(**db_config)  #建立一个链接
        cursor = cnn.cursor()

        cursor.execute(query)

        if flag == 1:
            res = cursor.fetchone()  #返回的元组
        else:
            res = cursor.fetchall()  #返回的是列表嵌套元组

        return res
    def read_data(self, section):
        '''从excle读取数据,有返回值'''
        #从配置文件里面控制读取那些用例
        case_id = ReadConfig(project_path.conf_path).get_data(
            section, 'case_id')  #section是配置里面的片段名,可以根据你的指定来测试具体的用例
        try:
            wb = load_workbook(self.file_name)  #打开excle工作簿
            global sheet  #声明sheet为全局变量
            sheet = wb[self.sheet_name]  #定位表单
        except Exception as e:
            print('发生错误{}'.format(e))

        #每一行数据要在一起[]{}
        #每一行数据存到一个空间里
        #开始读数据
        tel = self.get_tel()
        test_data = []  #存放所有数据
        for i in range(2, sheet.max_row + 1):
            row_data = {}  #存放每一行的数据
            row_data['CaseId'] = sheet.cell(i, 1).value
            row_data['Module'] = sheet.cell(i, 2).value
            row_data['Title'] = sheet.cell(i, 3).value
            row_data['Url'] = sheet.cell(i, 4).value
            row_data['Method'] = sheet.cell(i, 5).value
            if sheet.cell(i, 6).value.find('tel') != -1:  #注意find这个方法的使用以及返回值
                row_data['Params'] = sheet.cell(i, 6).value.replace(
                    'tel', str(tel))
                self.update_tel(int(tel) + 1)  #注意 这里的tel获取的是字符串类型
            else:
                row_data['Params'] = sheet.cell(i, 6).value
            row_data['Sql'] = sheet.cell(i, 7).value
            row_data['ExpectedResult'] = sheet.cell(i, 8).value
            test_data.append(row_data)  #把每一行的数据放到一个列表
        wb.close()

        #完成用例的可配置化
        final_data = []  #空列表  储存最终的测试用例数据
        if case_id == 'all':  #如果case_id==all,那就获取所有测试用例
            final_data = test_data  #把测试用例赋值给final_data这个变量
        else:  #否则,如果是列表,那就获取列表里面指定id的用例数据
            for i in case_id:
                final_data.append(test_data[i - 1])
        return final_data