接口测试框架分析

框架大体上已经写完了,不过说实话好多代码让我自己写我也写不出来,那该怎么办呢?很简单,把现在已经写好的代码保存起来,等用的时候拿出来复制粘贴就好了,如果你是大神,自己会写,那就更厉害了~

现在我们按模块分析一下代码:

1、setting.py

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

2、common->integretion

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

3、common->module->email_module.py

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

  1. text_msg = MIMEText(

  2. "<html><body><p><span style='color: red;'>&nbsp;&nbsp; 大家好:</span></p><p>&nbsp;&nbsp;&nbsp;&nbsp; "

  3. "附件为本次UI自动化测试报告,请查收。<br/></p></body></html>",

  4. '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函数作用我们在这里分析一下:

  1. def get_all_content(self, sheet_obj):

  2. __content = []

  3. # 总行数

  4. __rows_num = self.get_number_of_rows(sheet_obj)

  5. for tmp in range(__rows_num):

  6. tmp_list = []

  7. # 遍历行内容

  8. __row_value = self.get_row_values(sheet_obj, tmp)

  9. for i in __row_value:

  10. i = i.encode('utf8')

  11. # 将每行内容放到一个列表里

  12. tmp_list.append(i)

  13. __content.append(tmp_list)

  14. return __content

首先定义一个空列表__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都单独写成了方法,很容易理解。这样的方便就是为了今后应用的时候直接调用方法,不用再重新去写获取的方法,其实回过头想想,感觉这里其实没那么大的必要,我觉得。

剩下的就是testcase包下的用例文件了,其实在用例中是要增加断言的,我这里问了通过,没敢写断言。

最后就是咱们写了至少五六遍的run_all_tests.py文件了,吾不言。

 

总结:

感谢每一个认真阅读我文章的人!!!

作为一位过来人也是希望大家少走一些弯路,如果你不想再体验一次学习时找不到资料,没人解答问题,坚持几天便放弃的感受的话,在这里我给大家分享一些自动化测试的学习资源,希望能给你前进的路上带来帮助。

  1. 文档获取方式:

  2. 加入我的软件测试交流群:680748947免费获取~(同行大佬一起学术交流,每晚都有大佬直播分享技术知识点)

这份文档,对于想从事【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!

以上均可以分享,只需要你搜索vx公众号:程序员雨果,即可免费领取

相关推荐

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-04-11 19:58:01       75 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-04-11 19:58:01       80 阅读
  3. 在Django里面运行非项目文件

    2024-04-11 19:58:01       64 阅读
  4. Python语言-面向对象

    2024-04-11 19:58:01       75 阅读

热门阅读

  1. 【数据结构与算法】力扣 349. 两个数组的交集

    2024-04-11 19:58:01       40 阅读
  2. [xboard]ok210-3 S5PV210光盘资料与功能测试

    2024-04-11 19:58:01       35 阅读
  3. Go-学会 map 的基本使用

    2024-04-11 19:58:01       39 阅读
  4. Android.mk文件中添加so

    2024-04-11 19:58:01       32 阅读
  5. 正交投影的矩阵(基变换与过渡矩阵的例子)

    2024-04-11 19:58:01       43 阅读
  6. 【QT教程】QT6 Web开发入门

    2024-04-11 19:58:01       26 阅读
  7. ubuntu22.04 静态IP设置脚本

    2024-04-11 19:58:01       29 阅读
  8. set和map

    set和map

    2024-04-11 19:58:01      31 阅读
  9. FP独立站收款必备!AB站跳转轮询全解析

    2024-04-11 19:58:01       33 阅读