zoukankan      html  css  js  c++  java
  • 接口测试框架分析

    今天给大家讲解的是接口测试框架分析,现在我们按模块分析一下代码:

    1、setting.py

    这个文件放置的是一些常量,正如我们看到的比如接口地址前缀、电子邮件的配置,以及Log内容的设置等,这里放置的内容在修改的时候也会非常方便。

    2、common->integretion

    这个模块下只有一个文件——HTMLTestRunner.py文件,大家都已经知道了,这个文件是用来发邮件用的模板,这个文件大家只需要下载下来复制进去即可。

    3、common->module->email_module.py

    这个文件中放的是发送邮件的逻辑代码,需要注意的是:

    text_msg = MIMEText(
                "<html><body><p><span style='color: red;'>&nbsp;&nbsp; 大家好:</span></p><p>&nbsp;&nbsp;&nbsp;&nbsp; "
                "附件为本次UI自动化测试报告,请查收。<br/></p></body></html>",
                'html', "utf-8")
    

    这里放的是一个html格式的内容,第二个参数是“html”;此外还附加了一个测试报告的附件一起发送。而邮件发送人、接收人、邮件设置的一些参数都是读取常量文件setting.py读取到的,这样的好处是当你需要修改邮件发送、接收,或者修改发送邮件的服务器时会非常方便——把常量看做对象,需要的时候就只需要调用,保证代码不会被修改导致出现代码上的错误。

    4、common->module->environment_module.py

    这个方法的作用就是读取setting.py文件中的地址并返回

    5、common->module->excel_module.py

    读取excel文件,其中get_sheet_by_index,get_sheet_by_name,get_row_values,get_col_values等方法分别是通过索引、名称获取sheet内容、行内容以及列内容。最后的get_all_content函数作用我们在这里分析一下:

        def get_all_content(self, sheet_obj):
            __content = []
            # 总行数
            __rows_num = self.get_number_of_rows(sheet_obj)
            for tmp in range(__rows_num):
                tmp_list = []
                # 遍历行内容
                __row_value = self.get_row_values(sheet_obj, tmp)
                for i in __row_value:
    
                    i = i.encode('utf8')
                    # 将每行内容放到一个列表里
                    tmp_list.append(i)
                __content.append(tmp_list)
            return __content
    

    如果对软件测试、接口测试、自动化测试、面试经验交流。感兴趣可以加软件测试交流:1085991341,还会有同行一起技术交流。
    首先定义一个空列表__content(两个下划线的目的是为了避免子类重写),然后__rows_num保存获取到的行数。
    range(3),返回0,1,2。所以我们的for循环就是遍历行数次,在for循环中,先定义空列表tmp_list,通过get_row_values函数获取每行的内容,我们知道,我们读的是一个excel文件,所以每行的内容以列表的形式返回,继续遍历这些内容,然后进行编码,将编码后的内容放在新的列表中,最后返回编码后的内容列表。

    6、common->module->requests_module.py

    本模块中,GetResponse类下的方法就是多判断了一下是否携带session,除此之外和我们说过的requests方法没有区别。而AnalysisResponse类则把提取url、status_code、content、headers、cookies都单独写成了方法,很容易理解。
    以上内容希望对你有帮助,有被帮助到的朋友欢迎点赞,评论。

  • 相关阅读:
    ngRoute AngularJs自带的路由
    AngularJs $resource 高大上的数据交互
    AngularJs filter 过滤器
    eBPF监控工具bcc系列一启航
    [转载] kprobe原理解析(一)
    c++通过CMake实现debug开关
    如何使用fio模拟线上环境
    汇编学习pushl, popl
    block:cfq 学习02
    阻抗匹配详细讲解(以前的转贴)
  • 原文地址:https://www.cnblogs.com/Chaqian/p/12919091.html
Copyright © 2011-2022 走看看