美文网首页Python
xlrd+requests+unittest接口自动化实例分享

xlrd+requests+unittest接口自动化实例分享

作者: Rainbow想喝奶茶 | 来源:发表于2021-08-03 16:24 被阅读0次

应用前几篇学习的知识点,建立一个简单的接口自动化测试框架,模仿编写,非常初级,留作自己的纪念。
主要的文件结构:

  • userCase.xls:存储测试用例
  • read_excel.py:读取存储在excel中的测试用例,并存储于list中
  • send_requests.py:模拟发送请求,其中包含get、post及put,响应为json格式
  • testCase.py:利用unittest增加断言,执行测试用例

userCase.xls

测试用例

read_excel.py

# -*- coding: utf-8 -*-
import os
import xlrd
path=os.path.dirname(__file__)#获取当前文件的路径,但不包括当前文件
class readExcel():
    def get_xls(self,xls_name,sheet_name):
        xls_path=os.path.join(path,xls_name)#得到对应的excel文件完整路径
        file=xlrd.open_workbook(xls_path)
        sheet=file.sheet_by_name(sheet_name)
        rows=sheet.nrows
        cls=[]
        for i in range(rows):
            if sheet.row_values(i)[0] != 'case_name':
               cls.append(sheet.row_values(rowx=i,start_colx=0,end_colx=None))
        return cls

send_requests.py

# -*- coding: utf-8 -*-
import requests
import json
class RunMain():
    def send_post(self,url,data,headers):#
        result=requests.post(url=url,data=data,headers=headers).json()
        res=json.dumps(result,ensure_ascii=False,sort_keys=True,indent=4)
        return res

    def send_get(self,url,data,headers):
        result=requests.get(url=url,params=data,headers=headers).json()
        res=json.dumps(result,ensure_ascii=False,sort_keys=True,indent=4)
        return res

    def send_put(self,url,data,headers):
        result=requests.put(url=url,data=data,headers=headers).json()
        res=json.dumps(result,ensure_ascii=False,sort_keys=True,indent=4)
        return res

    def run_main(self,method,url=None,data=None,headers={"content-type":"application/json"}):
        result=None
        if method=='post':
            result=self.send_post(url,data,headers)
        elif method=='get':
            result=self.send_get(url,data,headers)
        elif method=='put':
            result=self.send_put(url,data,headers)
        else:
            print('method不是post、get或put')
        return result

testCase.py

# -*- coding: utf-8 -*-
import json
import unittest
from send_requests import RunMain
import paramunittest
import read_excelnew

user_xls=read_excelnew.readExcel().get_xls('userCase.xls','user')
@paramunittest.parametrized(*user_xls)
class testUserLogin(unittest.TestCase):
    def setParameters(self,case_name,path,query,body,method):
        self.case_name=str(case_name)
        self.path=str(path)
        self.query=str(query)
        self.body = str(body)
        self.method=str(method)

    def setUp(self):
        print(self.case_name+":开始")

    def tearDown(self):
        print("结束\n\n")

    def test(self):
        url='https://www.***.com'
        new_url=url+self.path+self.query
        info=RunMain().run_main(self.method,new_url,data=self.body.encode(),headers={"content-type":"application/json"})
        ss=json.loads(info)
        if self.case_name=='1':
            self.assertNotEqual(ss['human'],100)
        if self.case_name=='2':
            self.assertEqual(ss['name'],'123')
        if self.case_name=='3':
            self.assertEqual(ss['mode'],'freedom')
if __name__ == '__main__':
    unittest.main()

自我记录,有错误欢迎指正~

相关文章

  • xlrd+requests+unittest接口自动化实例分享

    应用前几篇学习的知识点,建立一个简单的接口自动化测试框架,模仿编写,非常初级,留作自己的纪念。主要的文件结构: u...

  • 2018-11-21

    接口自动化执行步骤 1. 根据接口规范编写请求响应javabean 2. 根据接口规范编写测试类 3. 实例化请求...

  • js中使用jsonpath

    自动化过程中会遇到接口关联-参数提取的问题,那么js中如何进行json提取呢? 实例

  • Postman接口自动化测试实例

    一.实例背景 在实际业务中,经常会出现让用户输入用户密码进行验证的场景。而为了安全,一般都会先请求后台服务器获取一...

  • 实战项目(二)-嘉宾发布会签到系统

    先前学习了虫师老师的接口自动化测试教程,总结一下项目实战思路 近期分享: 接口自动化测试从零开始学习集锦: htt...

  • 你要的jmeter接口自动化和接口性能知识点全部在这里

    jmeter接口自动化和接口性能 1.jmeter接口所有需要自动化技术都在这里 2.接口性能

  • 接口自动化框架(Pytest+request+Allure)

    前言: 接口自动化是指模拟程序接口层面的自动化,由于接口不易变更,维护成本更小,所以深受各大公司的喜爱。接口自动化...

  • 浅谈接口自动化测试

    昨晚在某个测试交流群,听了一个测试老司机分享接口自动化测试的内容,对接口自动化有了更深的一些认识,也为接下来公司的...

  • 接口测试一:接口测试流程

    接口测试一:接口测试流程 学习目标:了解接口测试自动化测试的流程接口自动化测试的流程1、需求分析:了解有有哪些接口...

  • python 进行 MD5 加密

    进行接口自动化时登录接口有进行密码加密的情况,下面介绍下 python + request 做接口自动化时如果进行...

网友评论

    本文标题:xlrd+requests+unittest接口自动化实例分享

    本文链接:https://www.haomeiwen.com/subject/xzrevltx.html