软件测试Python接口测试自动化测试

python项目实战--封装获取testFile下数据方法(五)

2019-11-12  本文已影响0人  orange_ade
一、文件创建

接上篇内容,在之前新增的common文件下新增:get_case.py,用来封装URL、用例参数的获取。
这里接口中的URL及data、response等数据存储在testFile目录的ini文件下,目录结构在上篇文章中已贴图片

#! /usr/bin/python
# coding:utf-8
from config.globalparameter import data_path
from config.globalparameter import url_path

def get_params(ini_name, case_name, data):
    data_ini = data_path(ini_name + '.ini')
    params = eval(data_ini.get(case_name, data))
    return params

def get_url(ini_name, case_name, base_url):
    base_url = eval(url_path.get('URL', base_url))
    url = get_params(ini_name, case_name, 'url')
    test_url = base_url + url
    return test_url

if __name__ == '__main__':
    print(get_params('login', 'login', 'data'))
    print(get_url('login', 'login', 'base_url'))
def data_path(ini_path):
    # testFile目录下测试数据ini文件获取
    path = configparser.ConfigParser()
    real_path = os.path.abspath(os.path.join(os.path.dirname(__file__), os.pardir))
    case_path = real_path+"\\testFile"
    join_path = os.path.join(case_path, ini_path)
    path.read(join_path, encoding='utf-8')
    return path
二、代码解释

globalparameter.py 文件中 def data_path(ini_path)方法详解:

get_case.py 文件代码详解

三、调用get_case.py文件中的get_params、get_url方法

testFile文件夹下新增文件login.ini,写入如下数据:

[login]
url = '/ei/ai/name/login'
data = {
  "username": "vivid.liu",
  "password": "123456"
 }

response = {"token": "**"}
# coding:utf-8
import unittest
import os, sys

from common.get_case import *
from common.login_info import login_info
from common.configHttp import RequestMethod

class LoginTest (unittest.TestCase):
    def setUp(self):
        self.url = get_url('login', 'login', 'login_url')
        self.headers = {'Content-Type': 'application/json;charset=utf-8', '接口请求头中token值对应字段': login_info("token")}
        self.param = get_params('login', 'login', 'data')
        self.response = get_params('login', 'login', 'response')

    def tearDown(self):
        print("完成登录测试")

    # 测试用例点
    def test_login_success(self):
        self.req_result = RequestMethod().post(self.url, self.param, self.headers).json()
        print(self.req_result)
        self.assertEqual(self.response['token'], self.req_result['token'])
        print("================登录(用户名+密码正确)==================")

if __name__ == '__main__':
    unittest.main()
四、总结

基本主要文件已讲解完成,下一篇将讲解run_All.py文件,后面陆续补充数据库连接、邮件发送、查询数据库进行断言

上一篇下一篇

猜你喜欢

热点阅读