我应该在WebAppDeployment之前或之后进行2e2测试吗



我希望有人能帮助我

我正在dotnet中开发一个api,在yaml中使用azure devops和pipelines。

我已经对api进行了2e2测试,我基本上对正在开发的api进行了真正的调用,以便测试应用程序中的真实用户流。

我的问题是以下应该:

1-在部署到我的Web应用程序之前执行2e2测试任务,使我能够在将其部署到资源之前知道存在问题,但存在的问题是,我不会使用当前提交的更改进行测试(因为我将使用前一个进行测试,因为我仍然没有部署资源(

2-在部署到我的网络应用程序后进行任务2e2测试,使我能够在提交中所做的更改反映在资源中的情况下进行测试,这样我就知道我所做的是否有问题,但问题是,在部署资源时,如果有问题,它已经污染了我的网络程序。

我正在研究的yaml是:

# ASP.NET
# Build and test ASP.NET projects.
# Add steps that publish symbols, save build artifacts, deploy, and more:
# https://learn.microsoft.com/azure/devops/pipelines/apps/aspnet/build-aspnet-4
trigger:
- development
pool:
vmImage: 'windows-latest'

steps:
- task: DotNetCoreCLI@2
displayName: 'dotnet publish'
inputs:
command: publish
publishWebProjects: false
projects: '**/ChatbotService/*.csproj'
zipAfterPublish: true
modifyOutputPath: true

- task: DotNetCoreCLI@2
displayName: 'dotnet MockUnitTest'
inputs:
command: test
projects: '**/*Tests/MockUnitTest/*.csproj'
arguments: '--configuration $(buildConfiguration) --collect "Code coverage"'
- task: DotNetCoreCLI@2
displayName: 'dotnet E2ETest'
inputs:
command: test
projects: '**/*Tests/E2ETest/*.csproj'
arguments: '--configuration $(buildConfiguration) --collect "Code coverage"'
- task: AzureRmWebAppDeployment@4
inputs:
ConnectionType: 'AzureRM'
azureSubscription: 'bla blab bla'
appType: 'webApp'
WebAppName: 'webapp-chatbotservice-dev'
packageForLinux: '$(System.DefaultWorkingDirectory)/ChatbotService/**/*.zip'
AppSettings: '-ASPNETCORE_ENVIRONMENT Development'

您应该先部署,然后运行e-2-e测试,但不能在生产上运行。在生产过程中,你应该运行烟雾测试,这是一种e-2-e测试,在不改变应用程序状态的情况下测试应用程序的关键部分。(当然,在部署后运行它们是有意义的(

所以它可以是这样的高层:

- build stage
- deploy to test env stage
- run e-2-e test
- deploy to prod env stage
- run smoke test

如果你在未更新的env上运行测试,总是有风险的,因为你的测试可能会验证尚未部署的应用程序的一部分。

最新更新