David Smiley created SOLR-18150:
-----------------------------------

             Summary: Introduce SolrBackend abstraction for tests & benchmarks
                 Key: SOLR-18150
                 URL: https://issues.apache.org/jira/browse/SOLR-18150
             Project: Solr
          Issue Type: Test
          Components: test-framework
            Reporter: David Smiley
            Assignee: David Smiley


I propose a basic abstraction for tests & benchmarks to interface with some 
kind of running Solr:  EmbeddedSolrServer, JettySolrRunner, 
MiniSolrCloudCluster, a remote (SolrJ Http) Solr, and perhaps a variant of that 
coupled to a Docker container.  Unlike SolrClientTestRule, it shouldn't be tied 
to JUnit.  Having seen many tests, and solr/benchmark, the principle things 
needed are:
* create a "collection" (or "core" if not in SolrCloud, but using the same 
API).  Must specify the configSet and a map of any name-value properties that 
will be used for substitution when reading the configs.  The neutrality on 
collection vs core is a key aspect of the whole abstraction.
* indicate if a collection exists already -- esp. for benchmarks to reuse a 
collection
* create/upload a configSet given a path to one.  Obviously done before 
creating a collection.  Reminder: configSets can be used in both Solr modes
* indicate if a configSet exists already -- esp. for benchmarks to reuse a 
configSet
* reload a collection
* provide a SolrClient for doing the work of the benchmark/test scoped to a 
collection.  Needs a means of customization (e.g. http1)
* provide a SolrClient for doing administrative tasks -- tasks *not* in scope 
of the benchmark/test but nonetheless needed to set things up
* and more can be added of course

The SolrBenchmark wouldn't generally be used directly by a benchmark/test, but 
it'd be one layer away.  Thus I propose SolrClientTestRule delegate/use a 
SolrBenchmark, and similarly SolrBenchState would likewise.  Both those things 
can tend to some unique benchmark/test matters.  By being a new abstraction 
that isn't tied to JUnit, it should be easy to add support for new/different 
test frameworks.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to