feat: Add comprehensive testing plan for IPSExtractor, including unit, integration, E2E, stress, and resilience tests. Introduce LaTeX documentation structure with sections for architecture, test strategy, and execution guidelines. Enhance README with setup instructions and k6 stress testing scripts.

This commit is contained in:
erik
2026-07-13 17:45:39 -05:00
parent 103bcea15b
commit 6bf413c4ce
25 changed files with 1662 additions and 0 deletions
@@ -0,0 +1,36 @@
\begin{figure}[ht]
\centering
\begin{tikzpicture}[
font=\small,
box/.style={draw=ipsblue, rounded corners=2pt, align=center, inner sep=4pt, minimum height=0.85cm, minimum width=2.4cm},
ext/.style={draw=ipsgrey, dashed, rounded corners=2pt, align=center, inner sep=4pt, minimum height=0.85cm},
arr/.style={-{Latex}, thick, ipsblue}
]
\node[box, fill=codebg] (desk) {Desktop\\Electron};
\node[box, fill=codebg, right=1.8cm of desk] (gw) {api\_gateway\\:8189};
\node[box, below=1.1cm of gw] (ext) {extraction\\:8001};
\node[box, left=0.8cm of ext] (clean) {cleaning\\:8002};
\node[box, right=0.8cm of ext] (count) {count-api\\:8080};
\node[box, below=1.1cm of ext] (bot) {bot-descarga\\:8200};
\node[box, below left=1.0cm and 0.2cm of bot] (pg) {PostgreSQL};
\node[box, below right=1.0cm and 0.2cm of bot] (redis) {Redis};
\node[ext, left=1.6cm of desk] (agent) {Agent PC\\Selenium};
\node[ext, below=2.6cm of agent] (minio) {MinIO/S3};
\node[ext, below=0.9cm of minio] (img) {Imaging};
\draw[arr] (desk) -- (gw);
\draw[arr] (gw) -- (ext);
\draw[arr] (gw) -- (clean);
\draw[arr] (gw) -- (count);
\draw[arr] (gw) -- (bot);
\draw[arr] (bot) -- (pg);
\draw[arr] (ext) -- (pg);
\draw[arr] (ext) -- (redis);
\draw[arr] (agent) |- (gw);
\draw[arr] (agent) -- (minio);
\draw[arr] (bot) -| (minio);
\draw[arr] (agent) -- (img);
\end{tikzpicture}
\caption{Arquitectura IPSExtractor bajo prueba.}
\label{fig:arquitectura}
\end{figure}
+31
View File
@@ -0,0 +1,31 @@
\begin{figure}[ht]
\centering
\begin{tikzpicture}[
font=\footnotesize,
actor/.style={draw=ipsblue, rounded corners=2pt, align=center, minimum width=1.7cm, minimum height=0.7cm, fill=codebg},
msg/.style={-{Latex}, thick},
note/.style={align=left, font=\scriptsize\color{ipsgrey}}
]
\node[actor] (d) {Desktop};
\node[actor, right=1.5cm of d] (g) {Gateway};
\node[actor, right=1.5cm of g] (a) {API bot};
\node[actor, right=1.5cm of a] (w) {Agent};
\node[actor, right=1.5cm of w] (m) {MinIO};
\coordinate (top) at ($(d.south)+(0,-0.35)$);
\foreach \n in {d,g,a,w,m} {
\draw[ipsgrey!60] (\n.south) -- ++(0,-5.6);
}
\draw[msg] ($(w.south)+(0,-0.5)$) -- node[above,font=\scriptsize]{register + heartbeat} ($(a.south)+(0,-0.5)$);
\draw[msg] ($(d.south)+(0,-1.3)$) -- node[above,font=\scriptsize]{POST /jobs (Excel)} ($(a.south)+(0,-1.3)$);
\draw[msg] ($(a.south)+(0,-2.0)$) -- node[above,font=\scriptsize]{PutObject Excel} ($(m.south)+(0,-2.0)$);
\draw[msg] ($(w.south)+(0,-2.7)$) -- node[above,font=\scriptsize]{claim\_pending} ($(a.south)+(0,-2.7)$);
\draw[msg] ($(w.south)+(0,-3.4)$) -- node[above,font=\scriptsize]{GET Excel / Put PDFs} ($(m.south)+(0,-3.4)$);
\draw[msg] ($(w.south)+(0,-4.1)$) -- node[above,font=\scriptsize]{POST events} ($(a.south)+(0,-4.1)$);
\draw[msg] ($(w.south)+(0,-4.8)$) -- node[above,font=\scriptsize]{PATCH completed} ($(a.south)+(0,-4.8)$);
\draw[msg] ($(d.south)+(0,-5.4)$) -- node[above,font=\scriptsize]{poll job + files} ($(a.south)+(0,-5.4)$);
\end{tikzpicture}
\caption{Secuencia del flujo bot de descarga.}
\label{fig:flujo-bot}
\end{figure}