运用pytest框架 assert断言 对http get接口进行自动化测试

整体思路:

1、建立符合pytest框架规范要求的py文件:test_getHttpDemo.py

2、导入pytest模块

3、创建符合pytest框架规范要求的类名称及类方法

4、敲代码,引用已封装的get请求方法,发起get请求

5、对接口响应结果应用assert判断实际结果与预期结果一致

6、并记录接口请求响应日志

#!/usr/bin/python
#coding=utf-8

print("祝大家新年快乐!新的一年里,身体健康,一切顺利,万事如意!")

import os
import config
import pytest

#导入另一个common目录下的common.py文件,被引入的common文件目录下需要增加初始化文件__init__.py,设置根目录为源根root
from common import common
from common.common import exc_log
from common.common import testData

class Test_getHttpDemo():

    def test_getHttpRequest(self):
        #调用http_get_param获取公共请求url
        baseUrl = config.http_get_param(self)
        #拼接url和请求参数
        pageNum = 2
        param = 'api/users?page=' + str(pageNum)
        getParam = baseUrl + param
        # 调用getFileName方法获取当前文件名
        fileName = Test_getHttpDemo.getFileName(self)
        test_http = common.test_http()
        try:
            # 调用封装的http_get_method方法发起get请求
            resStatusCode,resContent = test_http.http_get_method(getParam,fileName)
            pageMessage = testData.test_data_response(self,resContent,'page')
            #获取到的data是数组,取第一个数组中的值,是字典
            dataMessageDict = testData.test_data_response(self,resContent,'data')[0]
            #获取字典dataMessageDict中id的值
            idMessage = testData.test_data_response(self, dataMessageDict, 'id')
            #判断响应状态是200
            assert resStatusCode == 200,'响应状态码不是200'
            # #判断出参的页码与入参的页码一致
            assert pageMessage == pageNum,'当前页不是%s'%pageNum
            # #判断出参data数组下第一个字典下id的值是4
            assert idMessage == 4,'当前页id不是4'
            exc_log.info('测试通过' + '\n')
        except BaseException as e:
            exc_log.error('测试案例执行失败',exc_info = True)

    def getFileName(self):
        # 获取当前文件的文件名称
        fileName = os.path.basename(__file__)
        return fileName

if __name__ == '__main__':
    pytest.main(['test_getHttpDemo.py'])

接下来将学习数据抽离及allure美化测试报告。

本人也是在学习研究中,欢迎各位同学指导、探讨。遵从本心、无问东西!

你可能感兴趣的:(测试)