python+requests+unittest+HTMLTestRunner构建接口自动化测试框架(一)了解基础框架,读取配置文件

最初接触接口自动化测试是使用的JMeter,读取csv文件,添加断言来测试接口响应是否与预期一致,做到自动化。但是JMeter还不够自动化,所以后来自己自学了python的自动化框架,最近刚好梳理了下之前搭建的框架,分享给想要实现接口自动化测试的小伙伴,同时附上我当时学习时的博客连接:https://www.cnblogs.com/wangxiaoqun/p/6924797.html#!comments, 哈哈感谢这个博主让我成功入坑接口自动化测试!!!

  • python+requests+unittest+HTMLTestRunner构建接口自动化测试框架(一)了解基础框架,读取配置文件
  • python+requests+unittest+HTMLTestRunner构建接口自动化测试框架(二)commonMoudle模板详解
  • python+requests+unittest+HTMLTestRunner构建接口自动化测试框架(三)数据库、日志、http请求、邮件方法封装
  • python+requests+unittest+HTMLTestRunner构建接口自动化测试框架(四)测试用例执行

一、接口自动化测试框架

以下是我本次例子的完整框架,工程对应的模板功能可以看图中的解释。因为涉及代码比较多,所以会分几个篇章详细讲解哦。我们项目接口的请求消息和响应都是xml格式的,所以测试数据一些内容都是以xml格式为准的。
python+requests+unittest+HTMLTestRunner构建接口自动化测试框架(一)了解基础框架,读取配置文件_第1张图片python+requests+unittest+HTMLTestRunner构建接口自动化测试框架(一)了解基础框架,读取配置文件_第2张图片

二、设置配置文件

1、先创建一个python项目,这里我的项目名为publicCloudInterface;
2、创建config.ini文件,配置http请求、数据库和email相关参数;

  • email为outlook的配置,addressee为收件人,cc为抄送的;
  • 具体配置需要根据自己的环境设置哦~
[DATABASE]
host = 192.168.154.293
username = root
password = 123456333
port = 3306
database = light

[HTTP]
protocol = http
ip = 192.168.154.291
port = 8080

[EMAIL]
on_off = on
subject = 接口自动化测试报告
app = Outlook
addressee = xxxx@qq.com
cc = xxxxx@qq.com

三、读取config.ini文件内容

1、创建python文件,命名为readConfig
2、readConfig.py功能描述如下
(1)先通过os模块获取config.ini文件的路径
(2)初始化ConfigParser实例,使用ConfigParser模块读取配置文件的section节点,section节点就是config.ini中[]的内容;
(3)封装三个方法,分别读取节点DATABASE、HTTP和EMAIL中param值;

3、readConfig.py代码如下:

# -*- coding:utf-8 -*-
#@Time  : 2019/8/13 11:11
#@Author: csu
#@File  : readConfig.py
import os
import  configparser

'''
os.path.realpath: 获取当前文件的全路径
os.path.split:   按照路径将文件名和路径分割开
os.path.join:     将多个路径组合后返回
'''
basePath = os.path.split(os.path.realpath(__file__))[0]
configPath = os.path.join(basePath, 'config.ini')

class ReadConfig:

    def __init__(self):
        self.cf = configparser.ConfigParser()         
        self.cf.read(configPath, encoding='utf-8')          
        
    def get_db(self, param):
        value = self.cf.get('DATABASE', param)
        return value

    def get_http(self, param):
        value = self.cf.get('HTTP', param)
        return value

    def get_email(self, param):
        value = self.cf.get('EMAIL', param)
        return value

三、测试数据

1、创建testData文件夹,testData文件夹下又分别有case、interface和sql三个子文件夹;
python+requests+unittest+HTMLTestRunner构建接口自动化测试框架(一)了解基础框架,读取配置文件_第3张图片
2、在case下存放的是测试数据的Excel表格,我这里创建了一个userCase.xlsx表格,表格中为我设计的测试数据,内容如下:
在这里插入图片描述
3、在interface下创建interfaceURL.xml文件,interfaceURL.xml的内容会被拼接为请求的URL一部分,比如/app/user/security/userRegister,大家需要根据自己测试的http请求URL进行设计,我的设计内容如下:
python+requests+unittest+HTMLTestRunner构建接口自动化测试框架(一)了解基础框架,读取配置文件_第4张图片
3、sql文件夹下创建SQL.xml文件,会封装一个方法来读取这个文件中的sql语句,具体实现在下一篇中,我的SQL.xml文件内容如下:
python+requests+unittest+HTMLTestRunner构建接口自动化测试框架(一)了解基础框架,读取配置文件_第5张图片4、创建result文件夹,存放日志和测试报告文件

你可能感兴趣的:(#,Python,python,unittest,HTMLTestRunner,requestd,接口自动化测试)