android-test-pilot / cenarios.html
FourLabs-UN2's picture
adicione um sistema de cenários para separar os testes em cenários, como uma branch
7520416 verified
<!DOCTYPE html>
<html lang="pt-BR">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Cenários - Mobile Test Pilot</title>
<link rel="stylesheet" href="style.css">
<script src="https://cdn.tailwindcss.com"></script>
<script src="https://cdn.jsdelivr.net/npm/feather-icons/dist/feather.min.js"></script>
<script src="https://unpkg.com/feather-icons"></script>
<script>
tailwind.config = {
theme: {
extend: {
colors: {
primary: '#21223a',
secondary: '#ff580f',
}
}
}
}
</script>
</head>
<body class="bg-primary min-h-screen text-white">
<custom-sidebar></custom-sidebar>
<main class="ml-64 p-8">
<div class="max-w-7xl mx-auto">
<div class="flex items-center justify-between mb-8">
<div>
<h1 class="text-3xl font-bold mb-2">Cenários de Teste</h1>
<p class="text-gray-300">Organize seus testes em cenários separados como branches</p>
</div>
<div class="flex items-center gap-4">
<div class="relative">
<input type="text" placeholder="Buscar cenário..." class="bg-gray-800 border border-gray-700 rounded-lg px-4 py-2 pl-10 text-white focus:border-secondary focus:ring-2 focus:ring-secondary focus:ring-opacity-50">
<i data-feather="search" class="absolute left-3 top-1/2 transform -translate-y-1/2 text-gray-400 w-4 h-4"></i>
</div>
<button onclick="openCreateScenarioModal()" class="bg-secondary hover:bg-orange-600 text-white px-4 py-2 rounded-lg flex items-center gap-2">
<i data-feather="plus" class="w-4 h-4"></i>
Novo Cenário
</button>
</div>
</div>
<!-- Estatísticas -->
<div class="grid grid-cols-4 gap-6 mb-8">
<div class="bg-gray-800 p-6 rounded-2xl border border-gray-700">
<div class="flex items-center justify-between">
<div>
<p class="text-gray-400 text-sm">Total de Cenários</p>
<p class="text-2xl font-bold">8</p>
</div>
<div class="w-12 h-12 bg-secondary bg-opacity-20 rounded-full flex items-center justify-center">
<i data-feather="git-branch" class="text-secondary"></i>
</div>
</div>
</div>
<div class="bg-gray-800 p-6 rounded-2xl border border-gray-700">
<div class="flex items-center justify-between">
<div>
<p class="text-gray-400 text-sm">Cenários Ativos</p>
<p class="text-2xl font-bold text-green-400">5</p>
</div>
<div class="w-12 h-12 bg-green-500 bg-opacity-20 rounded-full flex items-center justify-center">
<i data-feather="activity" class="text-green-400"></i>
</div>
</div>
</div>
<div class="bg-gray-800 p-6 rounded-2xl border border-gray-700">
<div class="flex items-center justify-between">
<div>
<p class="text-gray-400 text-sm">Testes por Cenário</p>
<p class="text-2xl font-bold text-blue-400">12</p>
</div>
<div class="w-12 h-12 bg-blue-500 bg-opacity-20 rounded-full flex items-center justify-center">
<i data-feather="bar-chart-2" class="text-blue-400"></i>
</div>
</div>
</div>
<div class="bg-gray-800 p-6 rounded-2xl border border-gray-700">
<div class="flex items-center justify-between">
<div>
<p class="text-gray-400 text-sm">Cenários Concluídos</p>
<p class="text-2xl font-bold text-purple-400">3</p>
</div>
<div class="w-12 h-12 bg-purple-500 bg-opacity-20 rounded-full flex items-center justify-center">
<i data-feather="check-circle" class="text-purple-400"></i>
</div>
</div>
</div>
</div>
<!-- Grid de Cenários -->
<div class="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-6">
<!-- Cenário 1 -->
<div class="bg-primary rounded-2xl border border-gray-700 p-6 shadow-2xl hover:bg-gray-800 transition-colors cursor-pointer" onclick="viewScenario('login-flow')">
<div class="flex items-center justify-between mb-4">
<span class="bg-green-500 text-white px-3 py-1 rounded-full text-xs">Ativo</span>
<div class="flex gap-2">
<button class="p-1 hover:bg-gray-700 rounded transition-colors" title="Editar">
<i data-feather="edit" class="w-3 h-3"></i>
</button>
<button class="p-1 hover:bg-gray-700 rounded transition-colors" title="Configurar">
<i data-feather="settings" class="w-3 h-3"></i>
</button>
</div>
</div>
<div class="flex items-center gap-3 mb-4">
<div class="w-12 h-12 bg-green-500 bg-opacity-20 rounded-xl flex items-center justify-center">
<i data-feather="user" class="text-green-400"></i>
</div>
<div>
<h3 class="font-semibold text-lg">Fluxo de Login</h3>
<p class="text-sm text-gray-400">Testes de autenticação</p>
</div>
</div>
<div class="grid grid-cols-2 gap-4 mb-4">
<div>
<p class="text-sm text-gray-400">Testes</p>
<p class="font-semibold">8</p>
</div>
<div>
<p class="text-sm text-gray-400">Sucesso</p>
<p class="font-semibold text-green-400">6</p>
</div>
</div>
<div class="flex items-center justify-between text-sm text-gray-400">
<span>Criado: 15/12</span>
<span>v1.0</span>
</div>
</div>
<!-- Cenário 2 -->
<div class="bg-primary rounded-2xl border border-gray-700 p-6 shadow-2xl hover:bg-gray-800 transition-colors cursor-pointer" onclick="viewScenario('checkout-flow')">
<div class="flex items-center justify-between mb-4">
<span class="bg-blue-500 text-white px-3 py-1 rounded-full text-xs">Ativo</span>
<div class="flex gap-2">
<button class="p-1 hover:bg-gray-700 rounded transition-colors" title="Editar">
<i data-feather="edit" class="w-3 h-3"></i>
</button>
<button class="p-1 hover:bg-gray-700 rounded transition-colors" title="Configurar">
<i data-feather="settings" class="w-3 h-3"></i>
</button>
</div>
</div>
<div class="flex items-center gap-3 mb-4">
<div class="w-12 h-12 bg-blue-500 bg-opacity-20 rounded-xl flex items-center justify-center">
<i data-feather="shopping-cart" class="text-blue-400"></i>
</div>
<div>
<h3 class="font-semibold text-lg">Fluxo de Checkout</h3>
<p class="text-sm text-gray-400">Processo de compra</p>
</div>
</div>
<div class="grid grid-cols-2 gap-4 mb-4">
<div>
<p class="text-sm text-gray-400">Testes</p>
<p class="font-semibold">12</p>
</div>
<div>
<p class="text-sm text-gray-400">Sucesso</p>
<p class="font-semibold text-green-400">10</p>
</div>
</div>
<div class="flex items-center justify-between text-sm text-gray-400">
<span>Criado: 14/12</span>
<span>v2.1</span>
</div>
</div>
<!-- Cenário 3 -->
<div class="bg-primary rounded-2xl border border-gray-700 p-6 shadow-2xl hover:bg-gray-800 transition-colors cursor-pointer" onclick="viewScenario('performance-tests')">
<div class="flex items-center justify-between mb-4">
<span class="bg-yellow-500 text-white px-3 py-1 rounded-full text-xs">Pausado</span>
<div class="flex gap-2">
<button class="p-1 hover:bg-gray-700 rounded transition-colors" title="Editar">
<i data-feather="edit" class="w-3 h-3"></i>
</button>
<button class="p-1 hover:bg-gray-700 rounded transition-colors" title="Configurar">
<i data-feather="settings" class="w-3 h-3"></i>
</button>
</div>
</div>
<div class="flex items-center gap-3 mb-4">
<div class="w-12 h-12 bg-yellow-500 bg-opacity-20 rounded-xl flex items-center justify-center">
<i data-feather="bar-chart-2" class="text-yellow-400"></i>
</div>
<div>
<h3 class="font-semibold text-lg">Testes de Performance</h3>
<p class="text-sm text-gray-400">Análise de desempenho</p>
</div>
</div>
<div class="grid grid-cols-2 gap-4 mb-4">
<div>
<p class="text-sm text-gray-400">Testes</p>
<p class="font-semibold">6</p>
</div>
<div>
<p class="text-sm text-gray-400">Sucesso</p>
<p class="font-semibold text-green-400">4</p>
</div>
</div>
<div class="flex items-center justify-between text-sm text-gray-400">
<span>Criado: 13/12</span>
<span>v1.5</span>
</div>
</div>
</div>
<!-- Botão para ver mais cenários -->
<div class="text-center mt-8">
<button class="bg-gray-800 hover:bg-gray-700 text-white px-6 py-3 rounded-lg flex items-center gap-2 mx-auto">
<i data-feather="plus" class="w-4 h-4"></i>
Carregar Mais Cenários
</button>
</div>
</div>
</main>
<!-- Modal de Criação de Cenário -->
<div id="createScenarioModal" class="fixed inset-0 bg-black bg-opacity-75 hidden flex items-center justify-center z-50 p-4">
<div class="bg-primary rounded-2xl border border-gray-700 w-full max-w-2xl">
<div class="p-6 border-b border-gray-700 flex justify-between items-center">
<h3 class="text-xl font-semibold">Criar Novo Cenário</h3>
<button onclick="closeCreateScenarioModal()" class="text-gray-400 hover:text-white">
<i data-feather="x"></i>
</button>
</div>
<div class="p-6">
<div class="mb-6">
<label class="block text-sm font-medium mb-2">Nome do Cenário</label>
<input type="text" class="w-full bg-gray-800 border border-gray-700 rounded-lg px-4 py-3 text-white focus:border-secondary focus:ring-2 focus:ring-secondary focus:ring-opacity-50" placeholder="Ex: Fluxo de Pagamento">
</div>
<div class="mb-6">
<label class="block text-sm font-medium mb-2">Descrição</label>
<textarea class="w-full bg-gray-800 border border-gray-700 rounded-lg px-4 py-3 text-white focus:border-secondary focus:ring-2 focus:ring-secondary focus:ring-opacity-50" rows="3" placeholder="Descreva o propósito deste cenário de teste"></textarea>
</div>
<div class="mb-6">
<label class="block text-sm font-medium mb-2">Plataforma Alvo</label>
<select class="w-full bg-gray-800 border border-gray-700 rounded-lg px-4 py-3 text-white focus:border-secondary focus:ring-2 focus:ring-secondary focus:ring-opacity-50">
<option value="android">Android</option>
<option value="ios">iOS</option>
<option value="both">Ambas as Plataformas</option>
</select>
</div>
<div class="mb-6">
<label class="block text-sm font-medium mb-2">Versão</label>
<input type="text" class="w-full bg-gray-800 border border-gray-700 rounded-lg px-4 py-3 text-white focus:border-secondary focus:ring-2 focus:ring-secondary focus:ring-opacity-50" placeholder="Ex: v1.0.0">
</div>
<div class="flex justify-end gap-3">
<button onclick="closeCreateScenarioModal()" class="px-4 py-2 text-gray-300 hover:text-white transition-colors">
Cancelar
</button>
<button onclick="createScenario()" class="bg-secondary hover:bg-orange-600 text-white px-6 py-2 rounded-lg transition-colors duration-300 flex items-center gap-2">
<i data-feather="plus" class="w-4 h-4"></i>
Criar Cenário
</button>
</div>
</div>
</div>
</div>
<script src="components/sidebar.js"></script>
<script src="script.js"></script>
<script>
feather.replace();
function openCreateScenarioModal() {
document.getElementById('createScenarioModal').classList.remove('hidden');
document.getElementById('createScenarioModal').classList.add('flex');
}
function closeCreateScenarioModal() {
document.getElementById('createScenarioModal').classList.add('hidden');
document.getElementById('createScenarioModal').classList.remove('flex');
}
function createScenario() {
// Simular criação de cenário
alert('Cenário criado com sucesso!');
closeCreateScenarioModal();
}
function viewScenario(scenarioId) {
// Redirecionar para a página de detalhes do cenário
window.location.href = `scenario-detail.html?id=${scenarioId}`;
}
// Atualizar sidebar para marcar a página ativa
document.addEventListener('DOMContentLoaded', function() {
const sidebar = document.querySelector('custom-sidebar');
if (sidebar) {
const navItems = sidebar.shadowRoot.querySelectorAll('.nav-item');
navItems.forEach(item => {
if (item.querySelector('span').textContent === 'Cenários') {
item.classList.add('active');
} else {
item.classList.remove('active');
}
});
}
});
</script>
</body>
</html>