-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathtesting.en.html
193 lines (184 loc) · 10.3 KB
/
testing.en.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta name="generator" content="Docutils 0.17.1: http://docutils.sourceforge.net/" />
<title>Testing — AMC Traffic Server Documentation</title>
<link rel="stylesheet" type="text/css" href="_static/pygments.css" />
<link rel="stylesheet" type="text/css" href="_static/sphinxdoc.css" />
<link rel="stylesheet" type="text/css" href="_static/graphviz.css" />
<script data-url_root="./" id="documentation_options" src="_static/documentation_options.js"></script>
<script src="_static/jquery.js"></script>
<script src="_static/underscore.js"></script>
<script src="_static/doctools.js"></script>
<link rel="index" title="Index" href="genindex.html" />
<link rel="search" title="Search" href="search.html" />
<link rel="next" title="Errata" href="errata.en.html" />
<link rel="prev" title="Command Registration" href="command-registration.en.html" />
</head><body>
<div class="related" role="navigation" aria-label="related navigation">
<h3>Navigation</h3>
<ul>
<li class="right" style="margin-right: 10px">
<a href="genindex.html" title="General Index"
accesskey="I">index</a></li>
<li class="right" >
<a href="errata.en.html" title="Errata"
accesskey="N">next</a> |</li>
<li class="right" >
<a href="command-registration.en.html" title="Command Registration"
accesskey="P">previous</a> |</li>
<li class="nav-item nav-item-0"><a href="index.html">SWOC Docs</a> »</li>
<li class="nav-item nav-item-1"><a href="ats-projects.en.html" accesskey="U">Traffic Server Projects</a> »</li>
<li class="nav-item nav-item-this"><a href="">Testing</a></li>
</ul>
</div>
<div class="document">
<div class="documentwrapper">
<div class="bodywrapper">
<div class="body" role="main">
<section id="testing">
<span id="id1"></span><h1>Testing<a class="headerlink" href="#testing" title="Permalink to this headline">¶</a></h1>
<p>I have a number of additional projects to improve the AuTest framework for use with Traffic Server.</p>
<section id="pure-replay-testing">
<h2>Pure Replay testing<a class="headerlink" href="#pure-replay-testing" title="Permalink to this headline">¶</a></h2>
<p>It should be possible to have run tests using only a replay file and potentially some configuration
information, without any Python code at all. This requires the micro-DNS server.</p>
</section>
<section id="header-comparators">
<h2>Header Comparators<a class="headerlink" href="#header-comparators" title="Permalink to this headline">¶</a></h2>
<p>Frequently the literalness of the gold testing is a problem. AUTest should have comparators that are specialized for HTTP headers. This could be worked in to the replay file format with metadata indicating which headers should be literal, vs. present/absent vs. irrelevant. Replay file based testing would greatly benefit from this.</p>
</section>
<section id="traffic-capture-sampling">
<h2>Traffic Capture / Sampling<a class="headerlink" href="#traffic-capture-sampling" title="Permalink to this headline">¶</a></h2>
<p>At one point the technology existed to capture traffic for traffic replay. This should be
resurrected and improved. After discussion among the group it seems that for replay purposes literal
content is unnecessary, only the size matters. It is still debated if full capture is useful for
debugging purposes. My opinion is it is not and complicates the capture process unnecessarily.</p>
<p>I think in terms of building out the replay tooling we need a plugin that can to some extent record
traffic. The data recorded should be in the replay file format and contain</p>
<ul class="simple">
<li><p>Each session and the transactions in the session.</p></li>
<li><p>Timestamps.</p></li>
<li><p>The four headers.</p></li>
<li><p>The protocol stack for the user agent.</p></li>
<li><p>The transaction count for the outbound session.</p></li>
<li><p>The content block sizes.</p></li>
</ul>
<p>The plugin should record samples rather than all sessions as the latter isn’t possible on most
production machines. The plugin should have some sampling percentage and sample that fraction of
<em>sessions</em>. For content, the actual content isn’t particularly useful but the I/O operation sizes
could be significant. The plugin should record the number of bytes in each chunk of data that passes
through the transaction in both directions.</p>
</section>
<section id="production-verification">
<h2>Production Verification<a class="headerlink" href="#production-verification" title="Permalink to this headline">¶</a></h2>
<p>It would be nice to be able to run AUTest against live production systems to verify behavior,
particularly with regard to paranoid requirements.</p>
</section>
<section id="configuration-verification">
<h2>Configuration Verification<a class="headerlink" href="#configuration-verification" title="Permalink to this headline">¶</a></h2>
<p>AuTest could be integrated with configuration management. This would involve setting up a Traffic Server
instance with a proposed configuration deployment in a non-production environment and then verifying
various functional properties. This would similar to production verification but presumably more
thorough and focused on operatoinsl needs.</p>
</section>
<section id="replay-file-format">
<h2>Replay File Format<a class="headerlink" href="#replay-file-format" title="Permalink to this headline">¶</a></h2>
<p>The replay file is basically a list of sessions. Each session contains connection information and a
list of transactions. Each transaction contains some meta data and set of our transaction headers.
These are the inbound request, the outbound request, the upstream response, and the inbound
response.</p>
<p>Each transaction can also have a UUID which can be used to specify the appropriate response. The
UUID can be sent along with the transaction as an extra header if needed. Otherwise the transactions
must be matched up based on other data in the request.</p>
<ul class="simple">
<li><p><a class="reference external" href="_static/json/replay-file.json">File schema</a>.</p></li>
<li><p><a class="reference external" href="_static/json/replay-example.json">Example</a>.</p></li>
</ul>
</section>
<section id="diagrams">
<h2>Diagrams<a class="headerlink" href="#diagrams" title="Permalink to this headline">¶</a></h2>
<div class="graphviz"><img src="_images/graphviz-8cdbc9c577d5a05fc5d93aa8dfc2a30396a6e88d.png" alt="digraph {
testing_project [label="Testing" shape=folder];
replay_file_design [label="Replay File\nDesign" shape=rect style=rounded];
replay_file_testing [label="Replay File\nBased Testing" shape=rect style=rounded]
configuration_verification [label="Configuration\nVerification" shape=rect style=rounded]
production_verification [label="Production\nVerification" shape=rect style=rounded]
testing_project -> {replay_file_design};
replay_file_design -> {production_verification, configuration_verification, replay_file_testing}
}" class="graphviz" /></div>
</section>
</section>
<div class="clearer"></div>
</div>
</div>
</div>
<div class="sphinxsidebar" role="navigation" aria-label="main navigation">
<div class="sphinxsidebarwrapper">
<p class="logo"><a href="index.html">
<img class="logo" src="_static/balcora-gate-400x400.jpg" alt="Logo"/>
</a></p>
<h3><a href="index.html">Table of Contents</a></h3>
<ul>
<li><a class="reference internal" href="#">Testing</a><ul>
<li><a class="reference internal" href="#pure-replay-testing">Pure Replay testing</a></li>
<li><a class="reference internal" href="#header-comparators">Header Comparators</a></li>
<li><a class="reference internal" href="#traffic-capture-sampling">Traffic Capture / Sampling</a></li>
<li><a class="reference internal" href="#production-verification">Production Verification</a></li>
<li><a class="reference internal" href="#configuration-verification">Configuration Verification</a></li>
<li><a class="reference internal" href="#replay-file-format">Replay File Format</a></li>
<li><a class="reference internal" href="#diagrams">Diagrams</a></li>
</ul>
</li>
</ul>
<h4>Previous topic</h4>
<p class="topless"><a href="command-registration.en.html"
title="previous chapter">Command Registration</a></p>
<h4>Next topic</h4>
<p class="topless"><a href="errata.en.html"
title="next chapter">Errata</a></p>
<div role="note" aria-label="source link">
<h3>This Page</h3>
<ul class="this-page-menu">
<li><a href="_sources/testing.en.rst.txt"
rel="nofollow">Show Source</a></li>
</ul>
</div>
<div id="searchbox" style="display: none" role="search">
<h3 id="searchlabel">Quick search</h3>
<div class="searchformwrapper">
<form class="search" action="search.html" method="get">
<input type="text" name="q" aria-labelledby="searchlabel" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false"/>
<input type="submit" value="Go" />
</form>
</div>
</div>
<script>$('#searchbox').show(0);</script>
</div>
</div>
<div class="clearer"></div>
</div>
<div class="related" role="navigation" aria-label="related navigation">
<h3>Navigation</h3>
<ul>
<li class="right" style="margin-right: 10px">
<a href="genindex.html" title="General Index"
>index</a></li>
<li class="right" >
<a href="errata.en.html" title="Errata"
>next</a> |</li>
<li class="right" >
<a href="command-registration.en.html" title="Command Registration"
>previous</a> |</li>
<li class="nav-item nav-item-0"><a href="index.html">SWOC Docs</a> »</li>
<li class="nav-item nav-item-1"><a href="ats-projects.en.html" >Traffic Server Projects</a> »</li>
<li class="nav-item nav-item-this"><a href="">Testing</a></li>
</ul>
</div>
<div class="footer" role="contentinfo">
© Copyright 2017, [email protected].
Created using <a href="https://www.sphinx-doc.org/">Sphinx</a> 4.1.2.
</div>
</body>
</html>