一、Python+unittest+requests+HTMLTestRunner 完整的接口自动化测试框架搭建_00——框架结构简解

 1.首先配置好开发环境,下载安装Python并下载安装pycharm,在pycharm中创建项目功能目录。

接口自动化框架搭建_解决方法

 

二、Python+unittest+requests+HTMLTestRunner完整的接口自动化测试框架搭建_01——配置文件读取

1.把接口抽出来一些参数放到配置文件,然后通过一个读取配置文件的方法,方便后续的使用。同样还有邮件的相关配置~

——写入config.ini文件

接口自动化框架搭建_自动化测试_02

 

2.写一个获取项目某路径下某文件绝对路径的一个方法。

——写入getpathInfo.py文件

接口自动化框架搭建_html_03

接口自动化框架搭建_html_04

 

3.配置文件读取。

——写入readConfig.py文件

接口自动化框架搭建_框架搭建_05

接口自动化框架搭建_解决方法_06

 

三、Python+unittest+requests+HTMLTestRunner完整的接口自动化测试框架搭建_02——读取Excel中的case

1.编写用例

——Excel文件(D:\Pycharm\testFile\case)

接口自动化框架搭建_html_07

 

2.读取用例

——写入readExcel.py文件

接口自动化框架搭建_框架搭建_08

接口自动化框架搭建_python_09

 

四、Python+unittest+requests+HTMLTestRunner完整的接口自动化测试框架搭建_03——requests请求

1.对某个接口进行http请求

——写入configHttp.py文件

接口自动化框架搭建_框架搭建_10

接口自动化框架搭建_python_11

 

五、Python+unittest+requests+HTMLTestRunner完整的接口自动化测试框架搭建_04——参数动态化

1.写一个类,来用于分别获取参数来进行requests请求。

接口自动化框架搭建_自动化测试_12

接口自动化框架搭建_框架搭建_13

 

六、Python+unittest+requests+HTMLTestRunner完整的接口自动化测试框架搭建_05——unittest断言

1.unittest断言测试case。

——写入test01case.py

接口自动化框架搭建_框架搭建_14

接口自动化框架搭建_python_15

接口自动化框架搭建_python_16

 

七、Python+unittest+requests+HTMLTestRunner完整的接口自动化测试框架搭建_06——HTMLTestRunner

 ——从官网下载并修改(py2与py3兼容性问题)

1. 修改的地方

  问题一:No module named StringIO

  原因:python 3 中 没有 StringIO 这个模块。这里我们需要使用io 这个模块来代替。

  解决方法:

    第94行引入的名称要改,从 import StringIO 改成import io。

    相应的,539行 self.outputBuffer = StringIO.StringIO() 要改成self.outputBuffer = io.BytesIO()


  问题二:AttributeError: 'dict' object has no attribute 'has_key'

  原因:python 3 字典类型的object 已经不支持 has_key函数,我们需要使用in 来进行遍历。

  解决方法:

    定位到642行,if not rmap.has_key(cls): 需要换成 if not cls in rmap:


  问题三:'str' object has no attribute 'decode'

  原因:python3 里面对字符的操作中,decode已经拿掉了。

  解决方法:

    定位到772行,把 ue = e.decode('latin-1') 直接改成 ue = e 。

    另外766还有类似的uo = o.decode('latin-1'),改成 uo=o ;


  问题四 :TypeError: can't concat bytes to str

  原因:定位一下,报在了778行的内容escape(uo+ue) 。这是因为我们上面给uo赋值的时候,走的是else流程,uo被赋值的是bytes类型的值。 而bytes类型不能直接转化为str类型。所以我们需要在前面给uo赋值的时候先将bytes类型转换为 str类型。

  解决方法:

    修改768行的 uo = o ,直接改成 uo = o.decode('utf-8') 。

    另外 774还有类似的  ue = e, 改成 ue = e.decode('utf-8')。

 

  问题五:TypeError: unsupported operand type(s) for >>: 'builtin_function_or_method' and 'RPCProxy'

  原因: python3  不支持 print >> sys.stderr 这种写法,这里定义输出流的话,采用print("This is print str",file=sys.stderr) 这种方式。

  解决方法:

    定位到631行,把print的语句修改掉,原来是print >>sys.stderr, '\nTime Elapsed: %s' % (self.stopTime-self.startTime), 可改成 print('\nTime Elapsed: %s' % (self.stopTime-self.startTime),file=sys.stderr)

 

  问题六:TypeError: 'str' does not support the buffer interface

  原因:定位一下,问题出在118行,这里s是str类型,我们需要把传过来的s转化为bytes类型。

  解决方法:

    定位到118行,把 self.fp.write(s) 修改为 self.fp.write(bytes(s,'UTF-8')) 即可。

 

2. 保存

  修改后对HTMLTestRunner.py 保存一下。

3. 调用语句更改

  python3 里面打开文件使用 open,不要再去用file了。

  即 fp = file(filename,'wb')替换成 fp = open(filename,'wb');

  关闭该文件可用fp.close()

 

八、Python+unittest+requests+HTMLTestRunner完整的接口自动化测试框架搭建_07——调用生成测试报告

1.创建caselist.txt文件。这个文件的作用是,我们通过这个文件来控制,执行哪些模块下的哪些unittest用例文件。

——写入caselist.txt文件

接口自动化框架搭建_python_17

 

 2.发送邮件。(调用Outlook)

——写入configEmail.py文件。

接口自动化框架搭建_自动化测试_18

接口自动化框架搭建_解决方法_19

 

3.写入runAll文件

接口自动化框架搭建_python_20

接口自动化框架搭建_解决方法_21

接口自动化框架搭建_解决方法_22

接口自动化框架搭建_html_23

接口自动化框架搭建_python_24

 

 

接口自动化框架搭建_python_25

over~