python3 unittest+request+HTMLTestRunner接口自动化(一)

时间:2020-9-2 作者:admin

前言

很久之前就打算把接口自动化的文章写了,拖了这么久。现在终于有时间总结一下了,简单来说我采用的是读取Excel文档中的接口参数运行case。主要使用参数化paramunittest来实现,(paramunittest是unittest实现参数化的一个专门的模块),最后用HTMLtestrunner来生成报告

项目地址:https://github.com/lxlovely/interfaceTest.git

代码框架目录

正文代码

(1)首先我们来看一下cinfig.ini里面的内容,这个文件是配置文件,主要用来存一些数据库,邮箱。接口主机基本信息。方便修改和读取啦。



#数据库、邮箱、接口等的配置项,用于方便的调用读取。
[HTTP]
scheme=http
baseurl = xxxxx#接口文档的host也就是域名,如博客域名blog.csdn.net
#port = 8888
timeout = 10.0

[EMAIL]
#on_off是设置的一个开关,=on打开,发送邮件,=其他不发送邮件。
on_off = on
#subject邮件主题
subject = 接口自动化报告
app = Outlook
#发件人
 ### smtp服务器地址## 发信方的信息:发信邮箱,QQ 邮箱授权码##
mail_host = smtp.qq.com
 # 普通端口
mail_port = 25
## 安全链接端口
ssl_port=465

#发件人用户名
mail_user = xxxxxx@qq.com
#邮箱授权码
mail_pass = xxxxxxx
#发件人邮箱
sender = xxxxxx@qq.com

#收件人邮箱,# 多个收件人放在一个list里面

receiver = xxxxx@qq.com,xxxxxx@qq.com
#cc抄送人
cc=xxxxxx@qq.com

[SQL] #数据库

host = ""

(2)封装一个当前路径的函数,用来方便得到当前路径,当然也可以不封装每次获取路径也可。这里我封装了,getpathInfo.py

 


import os

def get_path():
    path = os.path.abspath(os.path.dirname(__file__))#获取当前目录绝对路径
    # path= os.path.abspath(os.path.dirname(os.path.dirname(__file__)))##获取上一级目录绝对路径
    return path

if __name__ =="__main__":# 执行该文件,测试是否正常
    print("测试路径为  %s:"%get_path())


 

(3)读取配置文件里面的内容,方便后期使用啦,readConfig.py 使用自带的configparser模块可以直接读取配置文件


#读取配置文件的方法,并返回文件中内容
import os
import  configparser
from testFile import getpathInfo

##调用实例化,这个类返回的路径为C:\Users\ChenTing\PycharmProjects\interfaceTest\testFile:
path = getpathInfo.get_path()
#返回的路径为C:\Users\ChenTing\PycharmProjects\interfaceTest\testFile\config.ini
config_path = os.path.join(path,'config.ini')
# print(config_path)

config = configparser.ConfigParser()#读取配置文件的方法实例化
config.read(config_path, encoding='utf-8') #读取config_path的文件

class ReadConfig():
    def get_http(self,name):
        http_value= config.get('HTTP',name)
        return http_value

    def get_email(self,name):
        email_value = config.get('EMAIL',name)
        return email_value

    def get_sql(self,name):
        sql_value = config.get('SQL',name)
        return sql_value


# print('HTTP中的baseurl值为:', ReadConfig().get_http('baseurl'))

if __name__ == '__main__':#测试一下,我们读取配置文件的方法是否可用
    A=ReadConfig()
    print('HTTP中的baseurl值为:', A.get_http('baseurl'))
    print("EMAIL中的开关on_off值为:", A.get_email('on_off'))

 

声明:本文内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎进行举报,并提供相关证据,工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。