当前位置: 代码网 > it编程>前端脚本>Python > Python实现接口自动化测试的方法详解

Python实现接口自动化测试的方法详解

2024年08月26日 Python 我要评论
一、环境搭建python +unittest+ requests实现http请求的接口自动化python的优势:语法简洁优美, 功能强大, 标准库跟第三方库灰常强大,建议大家事先了解一下python的

一、环境搭建

  • python +unittest+ requests实现http请求的接口自动化
  • python的优势:语法简洁优美, 功能强大, 标准库跟第三方库灰常强大,建议大家事先了解一下python的基础;
  • unittest是python的标准测试库,相比于其他测试框架是python目前使用最广的测试框架。
  • requests 是用python语言编写,基于urllib,采用apache2 licensed开源协议的http 库。它比urllib 更加方便,可以节约我们大量的工作,完全满足http 测试需求。
  • 在cmd命令行执行命令加载request第三方库:pip install requests
  •  python -m pip install pillow

二、方法

  • pip安装requests第三方库,然后引入:import requests
  • 引入json标准库,美化json输出:import json
  • 调用requests库中的post方法,会给出所需要的参数,传入上面定义的url和data参数,运行.py文件就执行了post请求。
import requests    #pip安装requests第三方库,然后引入
import json             #引入json标准库,美化json输出
  
url = 'http://***/account/login'
data = {
        "username":"***01",
        "password":"password",
}
 
result = requests.post(url,data).json()  #以json格式输出
print(result)
result = requests.post(url,data).text     #以源码形式输出
print(result)
import requests#引入requests第三方包
import json#引入json包
 
class login():
    def httprequests(self,url,data,method):#self为类函数的默认函数,放在第一位
        if method=="post":
            res=requests.post(url,data)#post请求方法
        else:
            res=requests.get(url,data)#get请求方法
        print(res.text)#以源码形式输出
        print(res.json())#以json形式输出
 
#创建实例,调用函数
test1=login()
login_url='https://www.******/pc/member/sign'
login_data={"flag":"mobile",
            "password":"f5e05a41724115d076bfb1fd2bd9613e",
            "mobile_phone":"136********"}
login_method='post'
test1.httprequests(login_url,login_data,login_method)

三、单元测试

  • 什么是单元测试:单元测试就是对代码进行测试,本质就是对类或者函数进行测试
  • 什么时候进行单元测试:代码完成后就开始进行测试
  • 由谁进行单元测试:一般有开发自己进行测试
  • 目的:尽可能早的介入测试,发现底层代码中的问题
  • 方法:使用unittest方法包:import unittest  

(1)先创建一个加法类-mathmethod,存入mathmethod.py文件

#定义一个数学加法类
class mathmethod():
    def add(self,a,b):
        return(a+b)
    def sub(self,a,b):
        return(a-b)

(2)然后创建测试用例-testmathmethod

import unittest
from htmltestrunner import htmltestrunner
from requesttest.math.mathmethod import mathmethod  # 引入mathmethod模块
#import htmltestrunnernew
 
 
class testmathmethod(unittest.testcase):#创建testmathmethod类,继承unittest.testcase方法
    #编写测试用例,函数命名必须以test_开头
    def test_add_two_num(self):
        res=mathmethod().add(3,6)
        print('两个数值相加结果是',res)
        self.assertequal(9,res)
 
    def test_sub_two_num(self):
        res=mathmethod().sub(9,8)
        print('两个数值相减结果是', res)
        self.assertequal(1,res)
 

(3)创建测试报告-使用html方法

import unittest
from htmltestrunner import htmltestrunner
from requesttest.math.testmathmethod import testmathmethod
 
 
testunit=unittest.testsuite()#生成单元测试流程
testunit.addtest(testmathmethod("test_add_two_num"))
testunit.addtest(testmathmethod("test_sub_two_num"))#加载一条测试用例
fp=open('d:\\test\\unittest1.html','wb')#创建测试报告,以写的方式存入某个路径
runner=htmltestrunner(
    stream=fp,
    title="加法测试",
    description="用例执行情况:"
    )
runner.run(testunit)
fp.close()

(4)也可使用txt的形式输出测试报告

import unittest
from htmltestrunner import htmltestrunner
from requesttest.math.testmathmethod import testmathmethod
 
suite=unittest.testsuite()#收集测试用例
loader=unittest.testloader()#加载测试用例-按照类的方法添加一个类下面的所有测试用例
suite.addtest(loader.loadtestsfromtestcase(testmathmethod))
file=open('test_case.txt','w+')#测试报告的存储路径和测试报告的读写方式
runner=unittest.texttestrunner(
    stream=file,
    verbosity=2,#测试报告的详细程度
)
runner.run(suite)#执行测试用例
test_add_two_num (requesttest.math.testmathmethod.testmathmethod) ... ok
test_sub_two_num (requesttest.math.testmathmethod.testmathmethod) ... ok
 
----------------------------------------------------------------------
ran 2 tests in 0.000s
 
ok

(5)生成测试报告方法三(html的方式)

 
import unittest
from htmltestrunner import htmltestrunner
from requesttest.math.testmathmethod import testmathmethod
 
suite=unittest.testsuite()#收集测试用例
loader=unittest.testloader()#加载测试用例
suite.addtest(loader.loadtestsfromtestcase(testmathmethod))
 
fp=open('d:\\test\\unittest1.html','wb')#创建测试报告,以写的方式存入某个路径
runner=htmltestrunner(
    stream=fp,
    title="加法测试",
    description="用例执行情况:"
    )
runner.run(suite)
fp.close()

以上就是python实现接口自动化测试的方法详解的详细内容,更多关于python接口自动化测试的资料请关注代码网其它相关文章!

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com