AWS Batch手动触发测试及多GUI页面自动化测试优化咨询
问题2:单镜像实现多页面测试的选择性执行
完全不需要制作15个独立镜像,单镜像即可实现灵活的测试选择,推荐两种实用方案:
方案1:利用Pytest原生的测试选择机制
将所有页面的测试用例按规则组织,运行时通过参数指定要执行的测试:
- 标记分组:给每个页面的测试用例添加专属标记,比如:
触发测试时,在Batch作业的命令中指定标记:import pytest @pytest.mark.login_page def test_login_success(): # 登录页面测试逻辑 pass @pytest.mark.checkout_page def test_checkout_flow(): # 结算页面测试逻辑 passpytest -m login_page - 文件/目录划分:把每个页面的测试放在单独的文件或子目录中(如
tests/login/、tests/checkout/),运行时指定目标文件/目录:pytest tests/login/
方案2:通过环境变量动态指定测试目标
在镜像中添加启动脚本,读取环境变量生成pytest命令:
- 编写
run_tests.sh脚本:#!/bin/bash # 若指定了TEST_TARGET,运行目标测试;否则运行全部 pytest ${TEST_TARGET:-.} - 在Dockerfile中设置该脚本为入口点:
COPY run_tests.sh /app/ RUN chmod +x /app/run_tests.sh ENTRYPOINT ["/app/run_tests.sh"] - 提交Batch作业时,通过
container-overrides传递环境变量指定测试目标:aws batch submit-job \ --job-name test-checkout \ --job-queue <你的作业队列名称> \ --job-definition <你的作业定义名称> \ --container-overrides 'environment=[{name=TEST_TARGET,value="-m checkout_page"}]'
这种单镜像方案能大幅减少镜像维护成本,同时支持灵活的单页面、多页面或全量测试执行。
内容的提问来源于stack exchange,提问作者Ram
相关产品推荐
相关产品推荐

