zoukankan      html  css  js  c++  java
  • day12_框架一main.py代码

    import time

    from lib import tools
    from lib import report
    from lib import sendmail
    from conf.settings import EMAIL_INFO,EMAIL_CONTENT_FORMAT
    class Main():
    def __init__(self,case_path,host):
    self.case_path = case_path
    self.host = host
    def __run(self):
    start_time = time.time() # 开始时间
    self.all_res_list = [] # 存放所有用例的返回结果,里面有多个字典
    case_list = tools.readCase(self.case_path)
    self.pass_count = 0 # 记录用例的通过次数
    for case in case_list: # case是excel里的每条用例,一行
    res_dic = {} # 存放每条用例的执行结果
    project = case[0] # 项目名称
    model = case[1] # 模块
    case_id = case[2] # 用例id
    detail = case[3] # 用例描述
    req_url = self.host+case[4] # 请求url
    method = case[5] # 请求方法
    req_data = case[6] # 请求数据
    hope = case[7] # 预期结果
    tester = case[8] # 测试人员
    response = tools.my_request(method,req_url,req_data)
    req_param = req_url + '?' + req_data.replace(',','&') # 请求报文
    case_status = tools.check_res(response,hope) # 用例执行结果
    if case_status == '通过':
    self.pass_count += 1
    res_dic = {
    "case_id": case_id,
    "project": project,
    "model": model,
    "detail": detail,
    "url": req_url,
    "tester": tester,
    "status": case_status,
    "request": req_param,
    "response": response
    }
    self.all_res_list.append(res_dic)
    end_time = time.time() # 结束时间
    self.run_time = end_time - start_time # 开始时间减去结束时间就是运行的时间
    def __result(self):
    tools.write_excel(self.case_path,self.all_res_list) # 反写excel
    all_case_num = len(self.all_res_list) # 总共多少用例
    fail_count = all_case_num - self.pass_count # 失败的用例
    all = {
    "all": all_case_num, # 总共多少条用例
    "ok": self.pass_count, # 通过的
    "fail": fail_count, # 失败
    "run_time": '%.2f' % self.run_time, # 运行了多久
    "case_res": self.all_res_list,
    "date": time.strftime('%Y/%m/%d %H:%M:%S') # 什么时候执行的
    }
    my_report = report.HtmlReport(all)
    my_report.report() # 生成html测试报告
    report_file_name = my_report.file_name # 生成报告的文件名
    title = '%s接口测试报告' % time.strftime('%Y/%m/%d %H:%M:%S')
    content = EMAIL_CONTENT_FORMAT.format(
    '本次共执行%s条用例,通过%s条,失败%s条。详情见附件测试报告。' % (all_case_num,
    self.pass_count, fail_count))

    mail_man = sendmail.SendMail(
    username = EMAIL_INFO.get('username'),
    passwd = EMAIL_INFO.get('password'),
    recv = EMAIL_INFO.get('recv'),
    email_host = EMAIL_INFO.get('email_host'),
    port = EMAIL_INFO.get('port'),
    ssl = EMAIL_INFO.get('ssl'),
    title = title,
    content = content,
    file = report_file_name
    )
    mail_man.send_mail()

    def main(self):
    self.__run()
    self.__result()
    if __name__ == '__main__':
    pass

  • 相关阅读:
    Guava Cache,Java本地内存缓存使用实践
    Guava-retry,java重试组件
    [leetcode] 31. 下一个排列
    [leetcode] 30. 与所有单词相关联的字串(cn第653位做出此题的人~)
    [leetcode] 29. 两数相除
    [leetcode] 28. 实现strStr()
    [leetcode] 27. 移除元素
    [leetcode] 26. 删除排序数组中的重复项
    [leetcode] 25. k个一组翻转链表
    [leetcode] 24. 两两交换链表中的节点
  • 原文地址:https://www.cnblogs.com/laosun0204/p/8616045.html
Copyright © 2011-2022 走看看