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)
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()
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)
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()
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'))
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)