随着API测试越来越重要。如何轻松实现API自动化测试?
今天我们来搭建一个API自动化测试框架使用Python的HttpRunner库
1. 环境准备:确保Python环境已安装,并安装HttpRunner。
pip install httprunner
2. 项目结构设计:设计合理的项目目录结构,例如:
-
api_test/
-
├── config.py # 配置文件,存放测试环境和变量
-
├── tests/ # 测试用例目录
-
│ ├── test_login.py
-
│ ├── test_user.py
-
│ └── ...
-
├── utils/ # 工具类和函数
-
│ ├── common_func.py
-
│ └── ...
-
├── reports/ # 测试报告目录
-
├── api_test_suite.py # 测试套件文件,用于组织测试用例
-
└── run_tests.py # 运行测试的入口脚本
3. 配置测试环境:在`config.py`文件中配置测试环境变量和基础URL。
-
class Config:
-
# 基础URL
-
base_url = "http://your-api-url.com"
-
# 测试环境配置
-
environments = {
-
"dev": {
-
"base_url": "http://dev-api-url.com"
-
},
-
"staging": {
-
"base_url": "http://staging-api-url.com"
-
},
-
"prod": {
-
"base_url": "http://prod-api-url.com"
-
}
-
}
4. 编写测试用例:在tests/目录下创建测试用例文件,使用HttpRunner提供的方法编写测试逻辑。
-
# test_login.py
-
from httprunner import HttpRunner, Config, RunTest
-
class TestLogin(HttpRunner):
-
def test_login_success(self):
-
# 调用登录接口
-
response = self.post("/login", data={"username": "admin", "password": "123456"})
-
self.assertEqual(response.status_code, 200)
-
self.assertIn("token", response.json())
-
if __name__ == "__main__":
-
RunTest().run()
5. 编写测试套件:在api_test_suite.py中组织测试用例,可以根据不同环境或标签运行不同的测试用例。
-
from httprunner import HttpRunner, RunTest
-
class ApiTestSuite(HttpRunner):
-
def test_suite(self):
-
self.run("tests/test_login.py::TestLogin")
-
self.run("tests/test_user.py::TestUser")
-
if __name__ == "__main__":
-
RunTest().run()
6. 编写运行脚本:在run_tests.py中编写脚本以运行测试,并生成测试报告。
-
# run_tests.py
-
from api_test_suite import ApiTestSuite
-
if __name__ == "__main__":
-
test_suite = ApiTestSuite()
-
test_suite.config("dev") # 指定测试环境
-
test_suite.run()
7. 运行测试:执行run_tests.py脚本,运行测试并生成报告。
python run_tests.py
8. 生成测试报告:HttpRunner会自动生成测试报告,存放在`reports/`目录下。
9. 持续集成:将测试框架集成到CI/CD流程中,例如Jenkins、GitLab CI等。
10. 维护和扩展:根据项目需求,不断维护和扩展测试框架,包括添加新的测试用例、优化测试逻辑、改进测试报告等。
请注意,这只是一个基本的框架搭建示例,实际项目中可能需要根据具体需求进行调整和优化。HttpRunner提供了丰富的功能,如参数化、测试用例依赖、测试数据管理等,可以根据需要进行使用。
感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:
这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!有需要的小伙伴可以点击下方小卡片领取