コード例 #1
0
ファイル: run.py プロジェクト: luoxiangfei/python_port_auto
 def run_test(self):
     data = Excel().get_xls(r"{}/K8S_call_log_save_testdata/data.xlsx".format(TEST_DATA_DIR), "call_log_data")
     result_data=K8sCallLogSave().run(data)
     # 获取到接口返回信息
     Excel().write_newxls(result_data,self.report_excel,sheet="call_log_data2")
     #生成测试报告文件--excel
     time.sleep(2)
     connectEmail=SendEmail(self.email["addresser"],self.email["addressee"],self.email["smtp"],self.email["user"],self.email["passwd"])
     #连接邮箱
     connectEmail.email_init(self.report_excel,self.excel_name)
     #把测试报告发送到指定邮箱
     DelDate().del_run(num=3)
     #删除本地excel文件
     self.log.info ("----程序结束----")
コード例 #2
0
ファイル: depend_data.py プロジェクト: tchudi/web_UI
class DependData():
    def __init__(self,caseid):
        self.caseid=caseid
        self.method=Method()
        self.getdata=GetData()
        self.excel=Excel()
    # 获取依赖的响应数据
    def get_response_data(self):
        #caseid = self.get_case_depend(row)
        row_num = self.excel.get_case_row(self.caseid)
        url = self.getdata.get_url(row_num)
        request_method = self.getdata.get_request_method(row_num)
        request_data = self.getdata.get_request_data(row_num)
        response_data = self.method.main(request_method, url, request_data)
        return response_data

    #获取依赖字段的值
    def get_data_value(self,row):
        depend_data=self.getdata.get_data_depend(row)
        response_data=self.get_response_data()
        json_exe=parse(depend_data)
        madle=json_exe.find(response_data)
        return [math.value for math in madle][0]
コード例 #3
0
ファイル: passport.py プロジェクト: icyCloud/testing-api
class PassportTestCase(unittest.TestCase):
    url = Config.get('runner', 'RUNNER_URL')
    filename = Config.get('runner', 'CASE_URL')
    sheet_name = 'passport'

    execl = Excel(filename, sheet_name)

    def action(self, row, i):
        url = self.url + row['url']
        data = row['data']

        result = requests.post(url, data)
        res = result.json()

        self.execl.write(i + 2, res['code'], res['msg'])
        print res
        self.assertEqual(res['code'], row['code'])

    @staticmethod
    def getTestFunc(row, i):
        def func(self):
            self.action(row, i)

        return func
コード例 #4
0
class TestTegister:
    # 读取测试用例
    excel_path = os.path.join(DATADIR, "interfaceCase.xlsx")
    excel1 = Excel(excel_path, "register_success")
    cases1 = excel1.get_data()
    # 发送请求对象
    request = Request()

    @pytest.mark.parametrize("case", cases1)
    @allure.title("{case[title]}")  # 用例名称
    @allure.story("注册正常情况")  # 特性场景
    @allure.description("注册成功")  # 用例描述
    @allure.tag("注册")  # 标签
    def test_register_success(self, case):
        allure.dynamic()
        with allure.step("第一步:准备数据"):
            with allure.step("接口地址"):
                url = conf.get("env", "host") + case["url"]
                allure.attach(
                    body=url,
                    name="接口请求地址")  # , extension=allure.attachment_type.TEXT
            with allure.step("请求方法"):
                method = case["method"]
                allure.attach(body=method,
                              name="接口请求方法",
                              extension=allure.attachment_type.TEXT)
                headers = eval(conf.get("env", "headers"))
            with allure.step("请求数据"):
                case["data"] = replace_data(case["data"])
                json = case["data"]
                allure.attach(body=json,
                              name="用例数据",
                              extension=allure.attachment_type.JSON)
            with allure.step("预期结果"):
                expected = eval(case["expected"])
                allure.attach(body=case["expected"],
                              name="预期结果",
                              extension=allure.attachment_type.TEXT)
            row = case["case_id"] + 1
            # 发送请求

        with allure.step("第二步:获取响应结果"):
            response = self.request.send_request(url=url,
                                                 method=method,
                                                 headers=headers,
                                                 json=eval(json))
            allure.attach(str(response.json()), "响应结果",
                          allure.attachment_type.JSON)
        res = response.json()
        with allure.step("第三步:测试结果"):
            try:
                assert expected["code"] == res["code"]
                assert expected["msg"] == res["msg"]
            except AssertionError as e:
                self.excel1.write_data(row=None, column=8, value="未通过")
                log.error(f"用例{case['title']},测试未通过")
                log.exception(e)
                raise e
            else:
                self.excel1.write_data(row=row, column=8, value="通过")
                log.info(f"用例{case['title']},测试通过")
                allure.attach(f"{case['title']}用例测试通过", "测试结果",
                              allure.attachment_type.TEXT)
コード例 #5
0
ファイル: data.py プロジェクト: testmandy/Live_api_python
class Data:
    col_case_id = 0
    col_api = 1
    col_is_live = 2
    col_is_run = 3
    col_method = 4
    col_is_header = 5
    col_depend_id = 6
    col_depend_data = 7
    col_depend_key = 8
    col_request_data = 9
    col_expect = 10
    col_result = 11

    def __init__(self):
        self.data = Excel()
        pass

    def get_case_id(self, rowx):
        colx = Data.col_case_id
        return self.data.get_cell(rowx, colx)

    def get_api(self, rowx):
        colx = Data.col_api
        return self.data.get_cell(rowx, colx)

    def get_is_live(self, rowx):
        colx = Data.col_is_live
        return self.data.get_cell(rowx, colx)

    def get_is_run(self, rowx):
        colx = Data.col_is_run
        return self.data.get_cell(rowx, colx)

    def get_method(self, rowx):
        colx = Data.col_method
        return self.data.get_cell(rowx, colx)

    def get_is_header(self, rowx):
        colx = Data.col_is_header
        return self.data.get_cell(rowx, colx)

    def get_depend_id(self, rowx):
        colx = Data.col_depend_id
        return self.data.get_cell(rowx, colx)

    def get_depend_data(self, rowx):
        colx = Data.col_depend_data
        return self.data.get_cell(rowx, colx)

    def get_depend_key(self, rowx):
        colx = Data.col_depend_key
        return self.data.get_cell(rowx, colx)

    def get_request_data(self, rowx):
        colx = Data.col_request_data
        return self.data.get_cell(rowx, colx)

    def get_expect(self, rowx):
        colx = Data.col_expect
        return self.data.get_cell(rowx, colx)

    def row_total(self):
        return self.data.get_rows()

    def write_passed_result(self, rowx):
        # 设置样式
        pattern = xlwt.Pattern()
        pattern.pattern = xlwt.Pattern.SOLID_PATTERN
        pattern.pattern_fore_colour = 3  # 5 背景颜色为黄色
        # 1 = White, 2 = Red, 3 = Green, 4 = Blue, 5 = Yellow, 6 = Magenta, 7 = Cyan, 16 = Maroon,
        # 17 = Dark Green, 18 = Dark Blue, 19 = Dark Yellow , almost brown), 20 = Dark Magenta, 21 = Teal,
        # 22 = Light Gray, 23 = Dark Gray
        style = xlwt.XFStyle()
        style.pattern = pattern
        # 写入数据并保存
        colx = Data.col_result
        self.data.write_data(rowx, colx, 'PASS', style)

    def write_failed_result(self, rowx, actual_result):
        # 设置样式
        pattern = xlwt.Pattern()
        pattern.pattern = xlwt.Pattern.SOLID_PATTERN
        pattern.pattern_fore_colour = 2  # 5 背景颜色为黄色
        # 1 = White, 2 = Red, 3 = Green, 4 = Blue, 5 = Yellow, 6 = Magenta, 7 = Cyan, 16 = Maroon,
        # 17 = Dark Green, 18 = Dark Blue, 19 = Dark Yellow , almost brown), 20 = Dark Magenta, 21 = Teal,
        # 22 = Light Gray, 23 = Dark Gray
        style = xlwt.XFStyle()
        style.pattern = pattern
        # 写入数据并保存
        colx = Data.col_result
        self.data.write_data(rowx, colx, actual_result, style)
コード例 #6
0
ファイル: data.py プロジェクト: testmandy/Live_api_python
 def __init__(self):
     self.data = Excel()
     pass
コード例 #7
0
                    "region": data_test[3],
                    "time": data_test[4],
                    "type": data_test[5]
                }
                if data_test[1] == '':
                    dict_data.pop("caller")
                elif data_test[2] == '':
                    dict_data.pop("callTime")
                elif data_test[3] == '':
                    dict_data.pop("region")
                elif data_test[4] == '':
                    dict_data.pop("time")
                elif data_test[5] == '':
                    dict_data.pop("type")
                result = self.call_log_dave_port(
                    json.dumps(dict_data))  #这里为进行接口请求,
                data_test.append(result)  #这里吧接口请求的结果写入到每行的最后一列
            data_list.append(data_test)  #这里把生成最新的每一列插入到列表data_list中
        return data_list  #这里吧生成的新二维列表返回出去


if __name__ == '__main__':
    data = '{"callTime":"2019-04-16 00:00:00","caller":"13694245189","region":"333","time":1,"type":"1"}'
    t = K8sCallLogSave()
    data1 = Excel().get_xls(
        r"{}/K8S_call_log_save_testdata/data.xlsx".format(TEST_DATA_DIR),
        "call_log_data2")
    # for i in data1:
    #     print(i)
    t.run(data1)
コード例 #8
0
ファイル: depend_data.py プロジェクト: tchudi/web_UI
 def __init__(self,caseid):
     self.caseid=caseid
     self.method=Method()
     self.getdata=GetData()
     self.excel=Excel()
コード例 #9
0
ファイル: application.py プロジェクト: maxcl730/my-scaffold
def download_application_success():
    form = GoodNameForm()
    trials = Trial.objects(good_name__icontains=form.good_name.data)
    applications = Application.objects(status=1).filter(trial__in=trials)
    # applications = Application.objects().filter(trial__in=trials)
    from flask import send_from_directory, make_response
    import os
    from common.excel import Excel
    from urllib.parse import quote
    recipients = list()
    path = '/tmp/'
    filename = form.good_name.data + '-发货名单.xls'
    if os.path.exists(path + filename):
        os.remove(path + filename)
    excel = Excel(filename=path + filename)
    column = 0
    excel.write(column, 0, content='收方姓名')
    excel.write(column, 1, content='收方联系方式')
    excel.write(column, 2, content='收方地址')
    excel.write(column, 3, content='商品名称')
    for app in applications:
        column += 1
        if app.member.address.province_name == app.member.address.city_name:
            province_city = app.member.address.city_name
        else:
            province_city = app.member.address.province_name + app.member.address.city_name
        excel.write(column, 0, content=app.member.address.username)
        excel.write(column, 1, content=app.member.address.tel_number)
        excel.write(column,
                    2,
                    content=province_city + app.member.address.county_name +
                    app.member.address.detail_info)
        excel.write(column, 3, content=app.trial.good_name)
        recipients.append({
            'name':
            app.member.address.username,
            'mobile':
            app.member.address.tel_number,
            'address':
            province_city + app.member.address.county_name +
            app.member.address.detail_info,
            'good_name':
            app.trial.good_name,
        })
        # Log.info(recipients)
    excel.save()
    response = make_response(
        send_from_directory(path, filename, as_attachment=True))
    response.headers["Content-Disposition"] = "attachment; filename={}".format(
        quote(filename.encode().decode('utf-8')))
    return response
コード例 #10
0
ファイル: get_data.py プロジェクト: tchudi/web_UI
 def __init__(self):
     self.excel=Excel()
     self.method=Method()
コード例 #11
0
ファイル: get_data.py プロジェクト: tchudi/web_UI
class GetData():
    def __init__(self):
        self.excel=Excel()
        self.method=Method()

    def get_case_lines(self):
        return self.excel.get_lines()

    def get_id(self,row):
        col=DataConfig.id
        return self.excel.get_cell_value(row,col)

    def get_name(self,row):
        col=DataConfig.name
        return self.excel.get_cell_value(row,col)

    def get_url(self,row):
        col=DataConfig.url
        return self.excel.get_cell_value(row,col)

    def get_is_run(self,row):
        col=DataConfig.is_run
        flag=None
        is_run=self.excel.get_cell_value(row,col)
        if is_run=='yes':
            flag=True
        else:
            flag=False
        return flag

    def get_request_method(self,row):
        col=DataConfig.method
        return self.excel.get_cell_value(row,col)


    def get_request_data(self,row):
        col=DataConfig.data
        request_data=self.excel.get_cell_value(row,col)
        return json.loads(request_data)

    def get_expect(self,row):
        col=DataConfig.expect
        return self.excel.get_cell_value(row,col)

    def write_result(self,row,value):
        col=DataConfig.result
        self.excel.write_data(row,col,value)

    def write_response_data(self,row,value):
        col=DataConfig.response
        value=json.dumps(value)
        self.excel.write_data(row,col,value)

    def get_case_depend(self,row):
        col=DataConfig.case_depend
        case_depend=self.excel.get_cell_value(row,col)
        if case_depend=='':
            return None
        else:
            return case_depend

    def get_data_depend(self,row):
        col=DataConfig.data_depned
        return self.excel.get_cell_value(row,col)

    def get_data_key_depend(self,row):
        col=DataConfig.data_key_depend
        return self.excel.get_cell_value(row,col)
コード例 #12
0
    def send_sms_port(self,appid,phone,templateId):
        "发送短信接口请求"
        data='{"appid" : "%s","phone" : "%s","templateId" : "%s"}'.replace(' ','')%(appid,phone,templateId)
        header={"time":self.time,
            "sign":self.getSign(data),"Content - Type": "application/json",
        }
        data_new = json.loads(data)
        url=self.yaml["url"]["send_sms"]
        response = requests.post(url, headers=header, json=data_new)
        # res=json.loads(response.text)
        print(response.text)
        return response.text
    def run(self,excel_data):
        data_list=[]        #定义要一个空列表
        for data_test in excel_data:    #excel_data为测试数据,二维列表的形式
            if int(data_test[0])==0:        #先判断第一行第一列为0的时候,直接在这 一行的最后增加一个测试结果
                data_test.append("测试结果")
            else:
                result=self.send_sms_port(data_test[1],data_test[2],data_test[3])   #这里为进行接口请求,
                data_test.append(result)    #这里吧接口请求的结果写入到每行的最后一列
            data_list.append(data_test)   #这里把生成最新的每一列插入到列表data_list中
        return data_list                #这里吧生成的新二维列表返回出去
if __name__ == '__main__':
    t=K8s_send_sms()
    data_dir=os.path.join(TEST_DATA_DIR,'K8S_msg_card_testdata')
    data_excel_dir=os.path.join(data_dir,'send_msg_data.xlsx')
    data_excel = Excel().get_xls(data_excel_dir,'send_msg')
    result=t.run(data_excel)