OnCorretor 3.0.0.0

De MSTECH wiki
Revisão de 13h02min de 2 de dezembro de 2016 por Andre.iguera (Discussão | contribs) (Criou página com '== Sistemas Verificados == *OnCorretor 3.0.0.0 == Verificação de Desempenho == === Observação do teste === Durante a construção dos cenários de testes foram encontr...')

(dif) ← Edição anterior | Revisão atual (dif) | Versão posterior → (dif)
Ir para: navegação, pesquisa

Sistemas Verificados

  • OnCorretor 3.0.0.0

Verificação de Desempenho

Observação do teste

Durante a construção dos cenários de testes foram encontrados alguns bugs, segue relação dos mesmos abaixo:

Message:Object reference not set to an instance of an object.
Source error:App_Web_qlczfjuy
Stack Trace:   at ASP._Page_content_widgets_banners_BannerCarrossel_index_cshtml.<>c__DisplayClass38.<>c__DisplayClass3a.<Execute>b__2c(ContentQueryResultItem ci) in \\ds-ht04\webteste\sites\OnCorretor\Construtor\Content\widgets\banners\BannerCarrossel\index.cshtml:line 200
  at System.Linq.Enumerable.WhereSelectListIterator`2.MoveNext()
  at System.Linq.Buffer`1..ctor(IEnumerable`1 source)
  at System.Linq.Enumerable.ToArray[TSource](IEnumerable`1 source)
  at ASP._Page_content_widgets_banners_BannerCarrossel_index_cshtml.<>c__DisplayClass38.<>c__DisplayClass3a.<Execute>b__29(TextWriter __razor_template_writer) in \\ds-ht04\webteste\sites\OnCorretor\Construtor\Content\widgets\banners\BannerCarrossel\index.cshtml:line 200
  at System.Web.WebPages.HelperResult.ToString()
  at MStech.CMS.Web.HtmlTemplate`1.WriteTo(HtmlTextWriter writer)
  at MStech.CMS.Web.UI.WidgetView.Render(HtmlTextWriter writer)
  at System.Web.WebPages.WebPageBase.Write(HelperResult result)
  at ASP._Page_content_widgets_banners_BannerCarrossel_index_cshtml.Execute() in \\ds-ht04\webteste\sites\OnCorretor\Construtor\Content\widgets\banners\BannerCarrossel\index.cshtml:line 38
  at System.Web.WebPages.WebPageBase.ExecutePageHierarchy()
  at System.Web.Mvc.WebViewPage.ExecutePageHierarchy()
  at System.Web.WebPages.WebPageBase.ExecutePageHierarchy(WebPageContext pageContext, TextWriter writer, WebPageRenderingBase startPage)
  at System.Web.Mvc.ViewResultBase.ExecuteResult(ControllerContext context)
  at System.Web.Mvc.ControllerActionInvoker.<>c__DisplayClass1a.<InvokeActionResultWithFilters>b__17()
  at System.Web.Mvc.ControllerActionInvoker.InvokeActionResultFilter(IResultFilter filter, ResultExecutingContext preContext, Func`1 continuation)
  at System.Web.Mvc.ControllerActionInvoker.InvokeActionResultFilter(IResultFilter filter, ResultExecutingContext preContext, Func`1 continuation)
  at System.Web.Mvc.Async.AsyncControllerActionInvoker.<>c__DisplayClass25.<BeginInvokeAction>b__22(IAsyncResult asyncResult)


  • Erro ao migrar Log
Message:Store update, insert, or delete statement affected an unexpected number of rows (0). Entities may have been modified or deleted since entities were    loaded. See http://go.microsoft.com/fwlink/?LinkId=472540 for information on understanding and handling optimistic concurrency exceptions.
Source error:EntityFramework
Stack Trace:   at System.Data.Entity.Internal.InternalContext.SaveChanges()
  at MStech.CMS.Web.Data.Entity.LogErrorsRepository.ArquivarLogs()
  at MStech.CMS.Web.ServiceModel.JobsQuartz.MigrarLog.Execute(IJobExecutionContext context)
Inner exception:Store update, insert, or delete statement affected an unexpected number of rows (0). Entities may have been modified or deleted since entities  were loaded. See http://go.microsoft.com/fwlink/?LinkId=472540 for information on understanding and handling optimistic concurrency exceptions.
Message:Store update, insert, or delete statement affected an unexpected number of rows (0). Entities may have been modified or deleted since entities were loaded. See http://go.microsoft.com/fwlink/?LinkId=472540 for information on understanding and handling optimistic concurrency exceptions.
Source error:EntityFramework
Stack Trace:   at System.Data.Entity.Core.Mapping.Update.Internal.UpdateTranslator.ValidateRowsAffected(Int64 rowsAffected, UpdateCommand source)
  at System.Data.Entity.Core.Mapping.Update.Internal.UpdateTranslator.Update()
  at System.Data.Entity.Core.Objects.ObjectContext.ExecuteInTransaction[T](Func`1 func, IDbExecutionStrategy executionStrategy, Boolean startLocalTransaction,  Boolean releaseConnectionOnSuccess)
  at System.Data.Entity.Core.Objects.ObjectContext.SaveChangesToStore(SaveOptions options, IDbExecutionStrategy executionStrategy, Boolean  startLocalTransaction)
  at System.Data.Entity.SqlServer.DefaultSqlExecutionStrategy.Execute[TResult](Func`1 operation)
  at System.Data.Entity.Core.Objects.ObjectContext.SaveChangesInternal(SaveOptions options, Boolean executeInExistingTransaction)
  at System.Data.Entity.Internal.InternalContext.SaveChanges()


  • Erro na aplicação. Por favor, entre em contato com o suporte.
Message:A potentially dangerous Request.Path value was detected from the client (&).
Source error:System.Web
Stack Trace:   at System.Web.HttpRequest.ValidateInputIfRequiredByConfig()
  at System.Web.HttpApplication.PipelineStepManager.ValidateHelper(HttpContext context)


*Message:'Newtonsoft.Json.Linq.JValue' does not contain a definition for 'id'
Source error:Anonymously Hosted DynamicMethods Assembly
Stack Trace:   at CallSite.Target(Closure , CallSite , Object )
  at System.Dynamic.UpdateDelegates.UpdateAndExecute1[T0,TRet](CallSite site, T0 arg0)
  at CallSite.Target(Closure , CallSite , Object )
  at ASP._Page_content_widgets_banners_BannerCarrossel_index_cshtml.<>c__DisplayClass38.<>c__DisplayClass3a.<Execute>b__2a(Object x) in \\ds-ht04\webteste\sites\OnCorretor\Construtor\Content\widgets\banners\BannerCarrossel\index.cshtml:line 175
  at System.Linq.Enumerable.WhereSelectListIterator`2.MoveNext()
  at System.Collections.Generic.List`1..ctor(IEnumerable`1 collection)
  at System.Linq.Enumerable.ToList[TSource](IEnumerable`1 source)
  at ASP._Page_content_widgets_banners_BannerCarrossel_index_cshtml.<>c__DisplayClass38.<>c__DisplayClass3a.<Execute>b__29(TextWriter __razor_template_writer) in \\ds-ht04\webteste\sites\OnCorretor\Construtor\Content\widgets\banners\BannerCarrossel\index.cshtml:line 175
  at System.Web.WebPages.HelperResult.ToString()
  at MStech.CMS.Web.HtmlTemplate`1.WriteTo(HtmlTextWriter writer)
  at MStech.CMS.Web.UI.WidgetView.Render(HtmlTextWriter writer)
  at System.Web.WebPages.WebPageBase.Write(HelperResult result)
  at ASP._Page_content_widgets_banners_BannerCarrossel_index_cshtml.Execute() in \\ds-ht04\webteste\sites\OnCorretor\Construtor\Content\widgets\banners\BannerCarrossel\index.cshtml:line 38
  at System.Web.WebPages.WebPageBase.ExecutePageHierarchy()
  at System.Web.Mvc.WebViewPage.ExecutePageHierarchy()
  at System.Web.WebPages.WebPageBase.ExecutePageHierarchy(WebPageContext pageContext, TextWriter writer, WebPageRenderingBase startPage)
  at MStech.CMS.Web.WidgetHtmlExtensions.SaveWidgetHtml(Controller controller, WidgetInstance widget, String viewName, Object model)
  at MStech.CMS.Web.Controllers.WidgetController.GenericChildAction(Int32 id, WidgetInstance wgi)
  at lambda_method(Closure , ControllerBase , Object[] )
  at System.Web.Mvc.ReflectedActionDescriptor.Execute(ControllerContext controllerContext, IDictionary`2 parameters)
  at System.Web.Mvc.ControllerActionInvoker.InvokeActionMethod(ControllerContext controllerContext, ActionDescriptor actionDescriptor, IDictionary`2 parameters)
  at System.Web.Mvc.Async.AsyncControllerActionInvoker.<>c__DisplayClass42.<BeginInvokeSynchronousActionMethod>b__41()
  at System.Web.Mvc.Async.AsyncControllerActionInvoker.EndInvokeActionMethod(IAsyncResult asyncResult)
  at System.Web.Mvc.Async.AsyncControllerActionInvoker.<>c__DisplayClass37.<>c__DisplayClass39.<BeginInvokeActionMethodWithFilters>b__33()
  at System.Web.Mvc.Async.AsyncControllerActionInvoker.<>c__DisplayClass4f.<InvokeActionMethodFilterAsynchronously>b__49()
  at System.Web.Mvc.Async.AsyncControllerActionInvoker.<>c__DisplayClass4f.<InvokeActionMethodFilterAsynchronously>b__49()
  at System.Web.Mvc.Async.AsyncControllerActionInvoker.EndInvokeActionMethodWithFilters(IAsyncResult asyncResult)
  at System.Web.Mvc.Async.AsyncControllerActionInvoker.<>c__DisplayClass25.<>c__DisplayClass2a.<BeginInvokeAction>b__20()
  at System.Web.Mvc.Async.AsyncControllerActionInvoker.<>c__DisplayClass25.<BeginInvokeAction>b__22(IAsyncResult asyncResult)


Message:An error occurred when trying to create a controller of type 'MStech.CMS.Web.Controllers.DynamicUIController'. Make sure that the controller has a parameterless public constructor.
Source error:System.Web.Mvc
Stack Trace:   at System.Web.Mvc.DefaultControllerFactory.DefaultControllerActivator.Create(RequestContext requestContext, Type controllerType)
  at System.Web.Mvc.DefaultControllerFactory.CreateController(RequestContext requestContext, String controllerName)
  at System.Web.Mvc.MvcHandler.ProcessRequestInit(HttpContextBase httpContext, IController& controller, IControllerFactory& factory)
  at System.Web.Mvc.MvcHandler.BeginProcessRequest(HttpContextBase httpContext, AsyncCallback callback, Object state)
  at System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()
  at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously)
Inner exception:No parameterless constructor defined for this object.
Message:No parameterless constructor defined for this object.
Source error:mscorlib
Stack Trace:   at System.RuntimeTypeHandle.CreateInstance(RuntimeType type, Boolean publicOnly, Boolean noCheck, Boolean& canBeCached,  RuntimeMethodHandleInternal& ctor, Boolean& bNeedSecurityCheck)
  at System.RuntimeType.CreateInstanceSlow(Boolean publicOnly, Boolean skipCheckThis, Boolean fillCache, StackCrawlMark& stackMark)
  at System.Activator.CreateInstance(Type type, Boolean nonPublic)
  at System.Activator.CreateInstance(Type type)
  at System.Web.Mvc.DefaultControllerFactory.DefaultControllerActivator.Create(RequestContext requestContext, Type controllerType)


  • Erro ao construir a URL de integração com o Venda Online na Landing Page grupoabc do site mbs-abc.com.br
Message:Sequence contains no elements
Source error:System.Core
Stack Trace:   at System.Linq.Enumerable.First[TSource](IEnumerable`1 source)
  at ASP._Page_Views_LandingPage_LandingPageLayout3_cshtml.Execute() in \\ds- ht04\webteste\sites\OnCorretor\Construtor\Views\LandingPage\LandingPageLayout3.cshtml:line 269

Para a realização dos testes foram utilizados:

  • 1 Servidor SQL
  • 8 Servidores WEB
  • 1 Controller
  • 1 Test agent

Análise do teste

XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX


Cenários de uso

Cenário: Acesso a home (usuário)
Ação realizada Think Time: Atraso constante (segundos) Think Time: Desvio (segundos)
01 - Acessar site do corretor 5 1
01 - Acessar um item do menu 10 3
01 - Acessar um item do menu 10 3
01 - Acessar um item do menu 10 3
01 - Acessar um item do menu 10 3
Cenário: Editar página corretora (corretor)
02 - Acessar tela de login 5 1
02 - Realizar login 3 10
02 - Clicar em "Editar página" 5 1
02 - Clicar para exibir componentes 5 1
02 - Adicionar componente banner 5 1
02 - Adicionar banner 8 2
02 - Salvar 10 2
02 - Logout 5 1

TOP queries mais lentas

  • Item 1
WITH CTE (Id,PortalId, Visible,Active,Name,[Order],ParentId,Permalink,ComponentId,[Path],[System],RestrictAccess,NoAction,Link,TargetBlank,[State],nivel)
          AS ( -- Anchor Member 
			   SELECT   Id,
                        PortalId,
                        Visible,
                        Active,
                        Name,
                        [Order],
                        ParentId,
                        Permalink,
                        ComponentId,
                        [Path],
                        [System],
                        RestrictAccess,
						NoAction,
						Link,
						TargetBlank,
                        [State],
                        0 AS nivel
               FROM     dbo.Page WITH(NOLOCK)
               WHERE    ParentId IS NULL AND 
						PortalId = @portalId AND						
						[State] = 1 AND --Inicia na página raiz
						InternalPage = 0
               UNION ALL -- Recursive Member 
               SELECT   child.Id,
                        child.PortalId,
                        child.Visible,
                        child.Active,
                        child.Name,
                        child.[Order],
                        child.ParentId,
                        child.Permalink,
                        child.ComponentId,
                        child.[Path],
                        child.[System],
                        child.RestrictAccess,
						child.NoAction,
						child.Link,
						child.TargetBlank,				
                        child.[State],
                        nivel + 1
               FROM     dbo.Page AS child WITH(NOLOCK)						
                        INNER JOIN CTE parent ON parent.Id = child.ParentId
                        WHERE child.PortalId = @portalId AND							  
							  child.[State] = 1
              )
              SELECT	cte.Id,
                        cte.PortalId,
                        cte.Visible,
                        cte.Active,
                        cte.Name,
                        cte.[Order],
                        cte.ParentId,
                        cte.Permalink,
                        cte.ComponentId,
                        cte.[Path],
                        cte.[System],
                        cte.RestrictAccess,
						cte.NoAction,
						cte.Link,
						cte.TargetBlank,
                        cte.[State],
                        cte.nivel,
                        pagegroup.Id AS PageGroupId,
                        pagegroup.GroupId
                FROM CTE
            LEFT JOIN dbo.PageGroup pagegroup WITH(NOLOCK) ON pagegroup.PageId = CTE.Id AND pagegroup.State = 1
            ORDER BY cte.[Order]
  • Item 2
WHILE (SELECT COUNT(*) FROM [dbo].[Page] WITH(NOLOCK) WHERE PortalId = @PortalId AND Permalink = @permalink) > 0
  • Item 3
WHILE (SELECT COUNT(*) FROM News WITH(NOLOCK) WHERE Permalink = @permalink AND PortalId = @PortalId) > 0
  • Item 4
SET @RESULTADO = @RESULTADO + (SELECT SUBSTRING(@SEMACENTOS,@QTD,1))
  • Item 5
SET @CONT = (SELECT LEN(@COMACENTOS))
  • Item 6
SET @LETRA_C = (SELECT SUBSTRING(@COMACENTOS,@QTD,1))

Resultado dos testes

Nesta seção serão apresentados os resultados obtidos da execução dos testes.

  • Processador e disco
Contador: Percentagem de tempo ocioso.
Descrição: Este contador fornece quanto tempo o disco permaneceu em estado de repouso, ou seja, todos os pedidos do sistema operacional para o disco ter sido concluída e há zero de pedidos pendentes. Este contador varia de 100 (ou seja, sempre ocioso) para 0 (ou seja, sempre ocupado).
Limite recomendado: Abaixo de 75 %.
Análise: Encontra-se ocioso grande parte do tempo.
2016-11-03 %TempoOcioso PortalCristoRei.png
Contador: Percentagem de espaço livre.
Descrição: Mostra a porcentagem do espaço total utilizável no disco lógico selecionado.
Limite recomendado: Acima de 25%.
Análise: Dentro do limite recomendado.
2016-11-03 %EspacoLivre PortalCristoRei.png
Tempo total do processador.
Descrição: Mede a utilização da CPU de cada processador.
Limite recomendado: Não exceder 80% por mais de 10 minutos ao longo do período de teste.
Análise: Dentro do limite recomendado.
2016-11-03 TempoToalProcessador PortalCristoRei.png
Contador: Mudança de contexto.
Descrição: A mudança de contexto ocorre quando o kernel muda o processador de um segmento para outro, por exemplo, quando um segmento com uma prioridade maior do que o segmento em execução torna-se pronto.
Limite recomendado: Quanto menor melhor.
Análise: Alta quantidade para a quantidade e usuários utilizando o sistema.
2016-11-03 MudancaContexto PortalCristoRei.png


  • Memória
Contador: Páginas/segundo.
Descrição: Mede o número de páginas por segundo que são paginadas fora da memória RAM para a memória virtual.
Limite recomendado: Se o número for alto indica falhas graves. O limite normalmente é de 20 páginas/s
Análise: Os servidores web apresentaram uma grande quantidade de páginas por segundo.
2016-11-04 PaginaS PortalCristoRei.png
Contador: % Memória virtual comprometida.
Descrição: Indica a percentagem da memória comprometida utilizada dentro do limite dado pela soma da memória RAM e Page File.
Limite recomendado: Abaixo de 75% e que não tenha grande variação no indicador.
Análise: A aplicação ficou dentro do recomendado.Porém, se for levado em consideração a quantidade de usuários simulados a quantidade de hardware consumido é alta.
2016-11-04 %MemoriaVirtualComprometida PortalCristoRei.png


Contador: Memória disponível em MBytes.
Descrição: Indica quantidade de memória disponível para alocação em MBytes.
Limite recomendado: Se o valor for inferior a 20/25 por cento de RAM instalada é uma indicação de memória insuficiente. Menos de 100 MB é uma indicação de que o sistema é muito carente de memória e paginação.
Análise: A aplicação ficou dentro do recomendado.
2016-11-04 memoriaDisponivel PortalCristoRei.png


  • Network
Contador: Kbytes totais pela interface de rede.
Descrição: Indica quantos Kbytes foram enviados e recebidos a cada segundo pela interface de rede.
Limite recomendado: Menor que 5 Mbytes para uma rede de 100Mbps, menor que 50 Mbytes para uma rede de 1000 Mbps. (Quanto menor melhor).
Análise: O servidor de banco de dados consome grande parte da banda larga.
2016-11-04 interfaceTotalDeRede PortalCristoRei.png
Contador: Falhas de conexão (TCP)
Descrição: Este é o número bruto de conexões TCP que falharam desde que o servidor foi iniciado. Uma falha normalmente indica uma perda de dados em lugar no processo. A perda pode ocorrer em muitos locais. Esta poderia ser uma indicação de um outro dispositivo que está sendo para baixo, ou problemas com a configuração do lado do cliente do software.
Limite recomendado: Quanto menor melhor.
Análise: É possível verificar uma grande quantidade de falhas, porém conforme alinhado com a equipe de dev, os erros ocorrem devido a estrutra utilizada pelo projeto, que dispara um erro/exceção e deste modo direcionada para o site correto.
2016-11-04 conexoesFalhas PortalCristoRei.png
  • ARR
Contador: Current application pool uptime
Descrição: Permite que você veja se o pedido foi reiniciado ou não.
Limite recomendado: Quanto menor melhor.
Análise: É possível verificar uma grande quantidade de reiniciamento para a quantidade de usuários simulados.
2016-11-04 currentApplicantionPoolUptime PortalCristoRei.png
  • SQL
Contador: Expectativa de vida da página.
Descrição: Indica o número em segundos que uma página vai ficar na área de buffers, sem referências.
Limite recomendado: Quanto menor melhor.
Análise: Aplicação ficou dentro do recomendado.
2016-11-04 expectativaDeVida PortalCristoRei.png
Contador: Request bloqueados.
Descrição: Indica o número dos requests bloqueados durante a execução dos testes.
Limite recomendado: Quanto menor melhor.
Análise: Aplicação possui uma grande quantidade de resquests bloqueados para a quantidade de usuário simulada, podendo resultar em deadlock.
2016-11-04 requestsBloqeuados PortalCristoRei.png
  • ASP.NET
Contador: Request por segundo.
Descrição: Indica o número de requests por segundo.
Limite recomendado: Quanto maior melhor. Em caso de utilização de mais de um servidor web deve-se estar próximo a quantidade de requests.
Análise: Não há grande variação de request entre os servidores web utilizados nos testes.
2016-11-04 requestsPorSegundo PortalCristoRei.png
Contador: Total de sessões .
Descrição: O número total de sessões. Este contador é suportado apenas com estado de sessões na memória.
Limite recomendado: Proporcional a quantidade de usuários simulados.
Análise: Aplicação está dentro do recomendado.
2016-11-04 sessoesTotais PortalCristoRei.png
  • Aplicação
Dado: Sampler
Descrição: Informa a quantidade threads.
Limite recomendado: A maior quantidade de requisições está no acesso a home, realização do login, acesso a notícia e acesso a uma tela do menu.
2016-11-04 sampler PortalCristoRei.png
Dado: Tempo médio de resposta.
Descrição: Informa o tempo médio de resposta.
Limite recomendado: Quanto menor melhor.
2016-11-04 tempoDeResposta PortalCristoRei.png
Dado: 90% dos melhores tempos de resposta
Descrição: Informa os 90% melhores tempos de respostas.
Limite recomendado: Quanto menor melhor.
2016-11-04 90%MelhoresTemposResposta PortalCristoRei.png
Dado: Vazão
Descrição: Informa a quantidade de dados transferidos.
2016-11-04 vazao PortalCristoRei.png