![ce0ff581de773948a9ece8093be82bdb.png](https://i-blog.csdnimg.cn/blog_migrate/df407c5e3fb2325dcd69cda1c2377e68.png)
![ce0ff581de773948a9ece8093be82bdb.png](https://i-blog.csdnimg.cn/blog_migrate/df407c5e3fb2325dcd69cda1c2377e68.png)
# -*- 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](https://i-blog.csdnimg.cn/blog_migrate/df407c5e3fb2325dcd69cda1c2377e68.png)
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](https://i-blog.csdnimg.cn/blog_migrate/df407c5e3fb2325dcd69cda1c2377e68.png)
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](https://i-blog.csdnimg.cn/blog_migrate/df407c5e3fb2325dcd69cda1c2377e68.png)
![ce0ff581de773948a9ece8093be82bdb.png](https://i-blog.csdnimg.cn/blog_migrate/df407c5e3fb2325dcd69cda1c2377e68.png)
![360c078ba1b9bed632c3916ce987e8ce.gif](https://i-blog.csdnimg.cn/blog_migrate/d1a9c99f74eb0b3411f07ac071ab5e9d.gif)
链接:https://www.cnblogs.com/zsybk/p/13666837.html
本文为51Testing经授权转载,转载文章所包含的文字来源于作者。如因内容或版权等问题,请联系51Testing进行删除
推荐阅读点击阅读☞带你深入理解自动化测试框架Pytest的配置文件!
点击阅读☞如何设计一个自动化测试框架?终于有人说到点儿上了!
点击阅读☞怎样构建测试自动化框架?你得记住以下三个编码实践!
点击阅读☞Selenium自动化测试之Unittest单元测试框架的使用!
点击阅读☞有多少人的自动化测试是从简单的框架搭建开始的?
![a3591c74638aae1bce9b4a1c8424b29d.gif](https://i-blog.csdnimg.cn/blog_migrate/5d7cda26ce9e4528030555902111eaeb.gif)