def start_dubbo_case():
    starttime = datetime.datetime.now()
    day = time.strftime("%Y%m%d%H%M", time.localtime(time.time()))
    basdir = os.path.abspath(os.path.dirname(__file__))
    path = os.getcwd() + '\\test_case_data\\dubbocase.xlsx'
    listid, listkey, listconeent, listurl, listfangshi, listqiwang, listname = datacel(
        path)
    listrelust, list_fail, list_pass, list_json, list_exption, list_weizhi = testdubbointerface(
    )
    filepath = os.path.join(basdir + '\\test_Report\\%s-result.html' % day)
    if os.path.exists(filepath) is False:
        os.system(r'touch %s' % filepath)
    endtime = datetime.datetime.now()
    createHtml(titles='dubbo接口自动化测试报告',
               filepath=filepath,
               starttime=starttime,
               endtime=endtime,
               passge=list_pass,
               fail=list_fail,
               id=listid,
               name=listname,
               key=listkey,
               coneent=listconeent,
               url=listurl,
               meth=listfangshi,
               yuqi=listqiwang,
               json=list_json,
               relusts=listrelust,
               weizhi=list_weizhi,
               exceptions=list_exption)
    contec = 'dubbo接口自动化测试完成,测试通过:%s,测试失败:%s,异常:%s,未知错误:%s,详情见:%s' % (
        list_pass, list_fail, list_exption, list_weizhi, filepath)
    send_ding(content=contec)
示例#2
0
def start_interface_html_http():
    starttime = datetime.datetime.now()
    day = time.strftime("%Y%m%d%H%M", time.localtime(time.time()))
    basdir = os.path.abspath(os.path.dirname(__file__))
    rows_count = GetData().get_case_lines()
    run = RunTest()
    listid = []
    listname = []
    listfangshi = []
    listurl ,listconeent,listqiwang,listrelust,list_exption,list_json=[],[],[],[],[],[]
    for i in range(1, rows_count):
        result = run.go_on_run(i)
        if result:
            listid.append(str(result[0]))
            listname.append(result[1])
            listfangshi.append(result[2])
            listurl.append(result[3])
            listconeent.append(result[4])
            listqiwang.append(result[5])
            if result[5] in result[6]:
                listrelust.append('pass')
            else:
                listrelust.append('fail')
            list_exption.append((result[5]))
            list_json.append(result[6])
    listkey = [i for i in range(80)]
    list_weizhi = 1
    list_pass = 4
    list_fail = 5
    filepath = os.path.join(basdir + '\\report\\result.html')
    if os.path.exists(filepath) is False:
        os.system(r'touch %s' % filepath)
    endtime = datetime.datetime.now()
    createHtml(titles=u'http接口自动化测试报告',
               filepath=filepath,
               starttime=starttime,
               endtime=endtime,
               passge=list_pass,
               fail=list_fail,
               id=listid,
               name=listname,
               key=listkey,
               coneent=listconeent,
               url=listurl,
               meth=listfangshi,
               yuqi=listqiwang,
               json=list_json,
               relusts=listrelust,
               weizhi=list_weizhi,
               exceptions=list_exption)
    SendEmail().send_main()
示例#3
0
def start_interface_html_http():
    starttime = datetime.datetime.now()
    day = time.strftime("%Y%m%d%H%M", time.localtime(time.time()))
    basdir = os.path.abspath(os.path.dirname(__file__))
    path = os.path.join(basdir, 'test_case_data')
    all_case = get_data(path)
    listrelust, list_fail, list_pass, list_json, list_exption, list_unknown = testinterface(
        all_case)
    filepath = os.path.join(basdir + '\\test_Report\\%s-result.html' % day)
    # if os.path.exists(filepath) is False:
    #     os.system(r'touch %s' % filepath)
    endtime = datetime.datetime.now()
    listid = []
    listname = []
    listurl = []
    listmethod = []
    listexpect = []
    listheader = []
    listdata = []
    for i in range(len(all_case)):
        listid.append(all_case[i]['id'])
        listname.append(all_case[i]['casename'])
        listurl.append(all_case[i]['url'])
        listmethod.append(all_case[i]['method'])
        listexpect.append(all_case[i]['expect'])
        listheader.append(all_case[i]['header'])
        listdata.append(all_case[i]['para'])
    createHtml(titles=u'http接口自动化测试报告',
               filepath=filepath,
               starttime=starttime,
               endtime=endtime,
               passge=list_pass,
               fail=list_fail,
               id=listid,
               name=listname,
               url=listurl,
               meth=listmethod,
               header=listheader,
               data=listdata,
               yuqi=listexpect,
               json=list_json,
               relusts=listrelust,
               unknown=list_unknown,
               exceptions=list_exption)
    contec = u'http接口自动化测试完成,测试通过:%s,测试失败:%s,异常:%s,未知错误:%s,详情见:%s' % (
        list_pass, list_fail, list_exption, list_unknown, filepath)
示例#4
0
def addtask(id):#定时任务执行的时候所用的函数
    in_id=int(id)
    task=Task.query.filter_by(id=in_id,status=False).first()
    starttime = datetime.datetime.now()
    star = time.time()
    day = time.strftime("%Y%m%d%H%M", time.localtime(time.time()))
    pad = os.getcwd()
    file_dir = pad + '/app/upload'
    file = os.path.join(file_dir, (day + '.log'))
    if os.path.exists(file) is False:
        os.system('touch %s' % file)
    filepath = os.path.join(file_dir, (day + '.html'))
    if os.path.exists(filepath) is False:
        os.system(r'touch %s' % filepath)
    projecct_list = []
    model_list = []
    Interface_name_list = []
    Interface_url_list = []
    Interface_meth_list = []
    Interface_pase_list = []
    Interface_assert_list = []
    Interface_headers_list = []
    Interface_pid_list = []
    Interface_yilai_list = []
    Interface_save_list = []
    Interface_is_data_list = []
    Interface_mysql_list = []
    Interface_msyql_ziduan_list = []
    id_list = []
    for task_yongli in task.interface.all():
        id_list.append(task_yongli.id)
        projecct_list.append(task_yongli.projects)
        model_list.append(task_yongli.models)
        Interface_is_data_list.append(task_yongli.is_database)
        Interface_mysql_list.append(task_yongli.chaxunshujuku)
        Interface_msyql_ziduan_list.append(task_yongli.databaseziduan)
        Interface_url_list.append(task_yongli.Interface_url)
        Interface_name_list.append(task_yongli.Interface_name)
        Interface_meth_list.append(task_yongli.Interface_meth)
        Interface_pase_list.append(task_yongli.Interface_pase)
        Interface_assert_list.append(task_yongli.Interface_assert)
        Interface_headers_list.append(task_yongli.Interface_headers)
        Interface_pid_list.append(task_yongli.pid)
        Interface_yilai_list.append(task_yongli.getattr_p)
        Interface_save_list.append(task_yongli.saveresult)
    testevent=task.testevent
    apitest = ApiTestCase(inteface_url=Interface_url_list, inteface_meth=Interface_meth_list,
                          inteface_parm=Interface_pase_list,inteface_assert=Interface_assert_list,
                          file=file, headers=Interface_headers_list,pid=Interface_pid_list,
                          is_database=Interface_is_data_list,data_mysql=Interface_mysql_list,
                          data_ziduan=Interface_msyql_ziduan_list,urltest=testevent,
                          yilaidata=Interface_yilai_list, saveresult=Interface_save_list, id_list=id_list)
    result_toal, result_pass, result_fail, relusts, bask_list, result_cashu, result_wei, \
    result_except = apitest.testapi()
    endtime = datetime.datetime.now()
    end = time.time()
    createHtml(titles=u'定时任务接口测试报告', filepath=filepath, starttime=starttime, endtime=endtime,
               passge=result_pass, fail=result_fail, id=id_list, name=projecct_list,
               headers=Interface_headers_list, coneent=Interface_url_list, url=Interface_meth_list,
               meth=Interface_pase_list, yuqi=Interface_assert_list, json=bask_list, relusts=relusts,
               excepts=result_except, yuqis=result_cashu, weizhi=result_wei)
    hour = end - star
    new_reust = TestResult(Test_user_id=1, test_num=result_toal, pass_num=result_pass,
                           fail_num=result_fail, test_time=starttime, hour_time=hour,
                           test_rep=(day + '.html'), test_log=(day + '.log'), Exception_num=result_except,
                           can_num=result_cashu, wei_num=result_wei,projects_id=projecct_list[0].id)
    db.session.add(new_reust)
    db.session.commit()
示例#5
0
文件: views.py 项目: yynice/FXTest
 def dispatch_request(self):
     next = request.headers.get('Referer')
     starttime = datetime.datetime.now()
     star = time.time()
     day = time.strftime("%Y%m%d%H%M", time.localtime(time.time()))
     pad = os.getcwd()
     file_dir = pad + '/app/upload'
     file = os.path.join(file_dir, (day + '.log'))
     if os.path.exists(file) is False:
         os.system('touch %s' % file)
     filepath = os.path.join(file_dir, (day + '.html'))
     if os.path.exists(filepath) is False:
         os.system(r'touch %s' % filepath)
     if request.method == 'POST':
         f_dingding = request.form.get('dingding')
         me = request.form.getlist('yongli')
         testurl = request.form.get('urltest')
         if len(me) <= 1:
             flash(u'请选择一个以上的用例来执行')
             return redirect(next or url_for('yongli'))
         if testurl is None:
             flash(u'请选择测试环境')
             return redirect(next or url_for('yongli'))
         projecct_list = []
         model_list = []
         Interface_name_list = []
         Interface_url_list = []
         Interface_meth_list = []
         Interface_pase_list = []
         Interface_assert_list = []
         Interface_headers_list = []
         Interface_pid_list = []
         Interface_yilai_list = []
         Interface_save_list = []
         Interface_is_data_list = []
         Interface_mysql_list = []
         Interface_msyql_ziduan_list = []
         id_list = []
         for case in me:
             case_one = InterfaceTest.query.filter_by(id=case).first()
             Interface_is_data_list.append(case_one.is_database)
             Interface_mysql_list.append(case_one.chaxunshujuku)
             Interface_msyql_ziduan_list.append(case_one.databaseziduan)
             id_list.append(case_one.id)
             projecct_list.append(case_one.projects)
             model_list.append(case_one.models)
             Interface_url_list.append(case_one.interface_id.Interface_url)
             Interface_name_list.append(case_one.Interface_name)
             Interface_meth_list.append(case_one.Interface_meth)
             Interface_pase_list.append(case_one.Interface_pase)
             Interface_assert_list.append(case_one.Interface_assert)
             Interface_headers_list.append(case_one.Interface_headers)
             Interface_pid_list.append(case_one.pid)
             Interface_yilai_list.append(case_one.getattr_p)
             Interface_save_list.append(case_one.saveresult)
         if (len(set(projecct_list))) > 1:
             flash('目前单次只能执行一个项目')
             return redirect(next or url_for('duoyongli'))
         testevent = Interfacehuan.query.filter_by(url=testurl).first()
         try:
             apitest = ApiTestCase(inteface_url=Interface_url_list,
                                   inteface_meth=Interface_meth_list,
                                   inteface_parm=Interface_pase_list,
                                   inteface_assert=Interface_assert_list,
                                   file=file,
                                   headers=Interface_headers_list,
                                   pid=Interface_pid_list,
                                   yilaidata=Interface_yilai_list,
                                   saveresult=Interface_save_list,
                                   id_list=id_list,
                                   is_database=Interface_is_data_list,
                                   data_mysql=Interface_mysql_list,
                                   data_ziduan=Interface_msyql_ziduan_list,
                                   urltest=testevent)
             result_toal, result_pass, result_fail, relusts, bask_list,result_cashu,\
             result_wei,result_except= apitest.testapi()
             endtime = datetime.datetime.now()
             end = time.time()
             createHtml(titles=u'接口测试报告',
                        filepath=filepath,
                        starttime=starttime,
                        endtime=endtime,
                        passge=result_pass,
                        fail=result_fail,
                        id=id_list,
                        name=projecct_list,
                        headers=Interface_headers_list,
                        coneent=Interface_url_list,
                        url=Interface_meth_list,
                        meth=Interface_pase_list,
                        yuqi=Interface_assert_list,
                        json=bask_list,
                        relusts=relusts,
                        excepts=result_except,
                        yuqis=result_cashu,
                        weizhi=result_wei)
             hour = end - star
             user_id = current_user.id
             new_reust = TestResult(Test_user_id=user_id,
                                    test_num=result_toal,
                                    pass_num=result_pass,
                                    fail_num=result_fail,
                                    test_time=starttime,
                                    hour_time=hour,
                                    test_rep=(day + '.html'),
                                    test_log=(day + '.log'),
                                    Exception_num=result_except,
                                    can_num=result_cashu,
                                    wei_num=result_wei,
                                    projects_id=projecct_list[0].id)
             db.session.add(new_reust)
             db.session.commit()
             if f_dingding == 'email':
                 email = EmailReport.query.filter_by(
                     email_re_user_id=int(current_user.id),
                     default_set=True).first()
                 if email:
                     m = send_emails(sender=email.send_email,
                                     receivers=email.to_email,
                                     password=email.send_email_password,
                                     smtp=email.stmp_email,
                                     port=email.port,
                                     fujian1=file,
                                     fujian2=filepath,
                                     subject=u'%s用例执行测试报告' % day,
                                     url='http://127.0.0.1:5000/test_rep')
                     if m == False:
                         flash(u'发送邮件失败,请检查您默认的邮件设置是否正确')
                         return redirect(url_for('home.test_rep'))
                     flash(u'测试已经完成,并且给您默认设置发送了测试报告')
                     return redirect(url_for('home.test_rep'))
                 flash(u'无法完成,需要去您的个人设置去设置一个默认的邮件发送')
                 return redirect(url_for('home.yongli'))
             if f_dingding == 'dingding':
                 send = send_ding(
                     content="多用例测试已经完成,通过用例:%s,失败用例:%s,详情见测试报告" %
                     (result_pass, result_fail))
                 if send is True:
                     flash(u'测试报告已经发送钉钉讨论群,测试报告已经生成!')
                     return redirect(url_for('home.yongli'))
                 flash(u'测试报告发送钉钉讨论群失败!请检查相关配置!')
                 return redirect(next or url_for('home.yongli'))
             flash(u'测试已经完成,测试报告已经生成')
             return redirect(url_for('home.test_rep'))
         except Exception as e:
             flash(u'测试失败,出错原因:%s' % e)
             return redirect(next or url_for('home.yongli'))
     return redirect(url_for('home.yongli'))
示例#6
0
文件: views.py 项目: zhoushume/FXTest
def addtask(id):  #定时任务执行的时候所用的函数
    in_id = int(id)
    task = Task.query.filter_by(id=in_id).first()
    starttime = datetime.datetime.now()
    star = time.time()
    day = time.strftime("%Y%m%d%H%M", time.localtime(time.time()))
    basedir = os.path.abspath(os.path.dirname(__file__))
    file_dir = os.path.join(basedir, 'upload')
    file = os.path.join(file_dir, (day + '.log'))
    if os.path.exists(file) is False:
        os.system('touch %s' % file)
    filepath = os.path.join(file_dir, (day + '.html'))
    if os.path.exists(filepath) is False:
        os.system(r'touch %s' % filepath)
    projecct_list = []
    model_list = []
    Interface_name_list = []
    Interface_url_list = []
    Interface_meth_list = []
    Interface_pase_list = []
    Interface_assert_list = []
    Interface_headers_list = []
    Interface_pid_list = []
    Interface_yilai_list = []
    Interface_save_list = []
    Interface_is_data_list = []
    Interface_mysql_list = []
    Interface_msyql_ziduan_list = []
    id_list = []
    for task_yongli in task.interface.all():
        id_list.append(task_yongli.id)
        projecct_list.append(task_yongli.projects)
        model_list.append(task_yongli.models)
        Interface_is_data_list.append(task_yongli.is_database)
        Interface_mysql_list.append(task_yongli.chaxunshujuku)
        Interface_msyql_ziduan_list.append(task_yongli.databaseziduan)
        Interface_url_list.append(task_yongli.Interface_url)
        Interface_name_list.append(task_yongli.Interface_name)
        Interface_meth_list.append(task_yongli.Interface_meth)
        Interface_pase_list.append(task_yongli.Interface_pase)
        Interface_assert_list.append(task_yongli.Interface_assert)
        Interface_headers_list.append(task_yongli.Interface_headers)
        Interface_pid_list.append(task_yongli.pid)
        Interface_yilai_list.append(task_yongli.getattr_p)
        Interface_save_list.append(task_yongli.saveresult)
    testevent = task.testevent
    apitest = ApiTestCase(inteface_url=Interface_url_list,
                          inteface_meth=Interface_meth_list,
                          inteface_parm=Interface_pase_list,
                          inteface_assert=Interface_assert_list,
                          file=file,
                          headers=Interface_headers_list,
                          pid=Interface_pid_list,
                          is_database=Interface_is_data_list,
                          data_mysql=Interface_mysql_list,
                          data_ziduan=Interface_msyql_ziduan_list,
                          urltest=testevent,
                          yilaidata=Interface_yilai_list,
                          saveresult=Interface_save_list,
                          id_list=id_list)
    result_toal, result_pass, result_fail, relusts, bask_list, result_cashu, result_wei, result_except = apitest.testapi(
    )
    endtime = datetime.datetime.now()
    end = time.time()
    createHtml(titles=u'定时任务接口测试报告',
               filepath=filepath,
               starttime=starttime,
               endtime=endtime,
               passge=result_pass,
               fail=result_fail,
               id=id_list,
               name=projecct_list,
               headers=Interface_headers_list,
               coneent=Interface_url_list,
               url=Interface_meth_list,
               meth=Interface_pase_list,
               yuqi=Interface_assert_list,
               json=bask_list,
               relusts=relusts,
               excepts=result_except,
               yuqis=result_cashu,
               weizhi=result_wei)
    hour = end - star
    user_id = User.query.filter_by(role_id=2).first().id
    new_reust = TestResult(Test_user_id=user_id,
                           test_num=result_toal,
                           pass_num=result_pass,
                           fail_num=result_fail,
                           test_time=starttime,
                           hour_time=hour,
                           test_rep=(day + '.html'),
                           test_log=(day + '.log'),
                           Exception_num=result_except,
                           can_num=result_cashu,
                           wei_num=result_wei)
    db.session.add(new_reust)
    db.session.commit()
    try:
        send_ding(
            content="%s定时任务执行完毕,测试时间:%s,\\n 通过用例:%s,失败用例:%s,\\n,详情见测试平台测试报告!" %
            (task.taskname, starttime, result_pass, result_fail))
    except Exception as e:
        flash('定时任务的钉钉消息发送失败!原因:%s' % e)