java接口自动化测试框架_想学接口自动化测试,不会搭建框架怎么行

f25e25091e8e64da019d5f5d6c88b50c.gif

ce0ff581de773948a9ece8093be82bdb.png 1.项目整体结构如下图

555dacbb59a6d83af9c45418ef29e13d.png

ce0ff581de773948a9ece8093be82bdb.png 2.配置如下
# -*- coding: utf-8 -*-[HTTP]scheme = httpbaseUrl = 127.0.0.1port = 8888timeout = 10.0[USER]username = adminpassword = 123456[EMAIL]on_off = offtitle = 接口自动化测试报告message = 这是今天的测试报告,请查收!password = 1221421dfadfdreceiver = test.qq.comserver = smtp.qq.comsender = test.qq.com
ce0ff581de773948a9ece8093be82bdb.png 3.测试服务api,test_api.py如下
import jsonimport flaskfrom flask import request# 创建一个服务,把当前这个python文件当做一个服务server = flask.Flask(__name__)@server.route('/auth/login', methods=['get', 'post'])def login():    username = request.values.get('username')    password = request.values.get('password')    if username and password:        if username == 'admin' and password == 'e10adc3949ba59abbe56e057f20f883e':            response = {'code': 200, 'msg': '登录成功', 'data': {'token': '5ffccad5-b06e-4f20-a88e-0d4d31c0ab8d'},                        'userInfo': {'sex': '女', 'age': 25}}        elif username == 'zsy' and password == 'e10adc3949ba59abbe56e057f20f883e':            response = {'code': 200, 'msg': '登录成功', 'data': {'token': '3ffccad5-b06e-4f20-a88e-0d4d31c0ab8d'},                        'userInfo': {'sex': '男', 'age': 23}}        else:            response = {'code': 401, 'msg': '账号密码错误', 'userInfo': {}}    else:        response = {'code': 400, 'msg': '参数不能为空', 'userInfo': {}}    response = json.dumps(response, ensure_ascii=False)    print(response)    return response@server.route('/statistics/homePage', methods=['get'])def homePage():    token = request.headers.get('Authorization')    if token == 'Bearer 5ffccad5-b06e-4f20-a88e-0d4d31c0ab8d':        response = {'code': 200, 'msg': 'success', 'pageInfo': {'title': '欢迎您'}}    elif token == 'Bearer 3ffccad5-b06e-4f20-a88e-0d4d31c0ab8d':        response = {'code': 403, 'msg': '权限不足', 'pageInfo': {}}    else:        response = {'code': 401, 'msg': '未授权'}    response = json.dumps(response, ensure_ascii=False)    print(response)    return responseif __name__ == '__main__':    server.run(debug=True, port=8888, host='127.0.0.1')
ce0ff581de773948a9ece8093be82bdb.png 4.测试用例如下
import unittestfrom src.api.loginApi import LoginClientclass TestLogin(unittest.TestCase):    def setUp(self):        self.client = LoginClient()    def test_login_success(self):        """登录成功"""        self.client.login('admin', '123456')        self.assertEqual(200, self.client.code)    def test_login_error(self):        """登录失败"""        self.client.login('admin', '111')        self.assertEqual(400, self.client.code)    def test_login_null(self):        """参数为空"""        self.client.login()        self.assertEqual(400, self.client.code)if __name__ == '__main__':    unittest.main()import jsonimport unittestfrom parameterized import parameterizedfrom src.api.loginApi import LoginClientfrom src.common.readExcel import ReadExcellogin_xls = ReadExcel().get_xls('loginCase.xlsx', 'login')class TestUserLogin(unittest.TestCase):    def setUp(self):        self.client = LoginClient()    @parameterized.expand(login_xls)    def test_login(self, case_name, query):        self.checkResult(case_name, query)    def tearDown(self):        pass    def checkResult(self, case_name, query):  # 断言        """        check test result        :return:        """        client = self.client        query = json.loads(query)        client.requestBody = query        client.login()        if case_name == 'login':  # 如果case_name是login,说明合法,返回的code应该为200            self.assertEqual(200, client.code)        if case_name == 'login_error':  # 同上            self.assertEqual(400, client.code)        if case_name == 'login_null':  # 同上            self.assertEqual(400, client.code)if __name__ == '__main__':    unittest.main()
ce0ff581de773948a9ece8093be82bdb.png 5.html报告如下

ec636ac4417bc02549e881e39ddedb10.png

ce0ff581de773948a9ece8093be82bdb.png 6.日志打印如下

fcc518ff3372c848fe4ff6d1fe1a74a2.png

360c078ba1b9bed632c3916ce987e8ce.gif

1552cd8748016c3876d61397fe1b26ba.png

链接:https://www.cnblogs.com/zsybk/p/13666837.html

本文为51Testing经授权转载,转载文章所包含的文字来源于作者。如因内容或版权等问题,请联系51Testing进行删除

推荐阅读

点击阅读☞带你深入理解自动化测试框架Pytest的配置文件!

点击阅读☞如何设计一个自动化测试框架?终于有人说到点儿上了!

点击阅读☞怎样构建测试自动化框架?你得记住以下三个编码实践!

点击阅读☞Selenium自动化测试之Unittest单元测试框架的使用!

点击阅读☞有多少人的自动化测试是从简单的框架搭建开始的?

a3591c74638aae1bce9b4a1c8424b29d.gif

57168e8d6889c167da99c3508a516877.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值