/** * Build or get the server from the list of server already build from the passed url * @param url extracting the server from this url * @return the corresponding server * @throws MalformedURLException */ public Server getServer(final String url) throws MalformedURLException { return getServer(new URL(url)); }
/** * Generate an immutable request from a given URL object */ @VisibleForTesting protected static GetPlainRequest buildGetRequestFromURL(final LoadRunnerVUVisitor visitor, final URL url, final Optional<RecordedFiles> recordedFiles, final List<Header> recordedHeaders) { final ImmutableGetPlainRequest.Builder requestBuilder = ImmutableGetPlainRequest.builder() // Just create a unique name, no matter the request name, should just be unique under a page .name(UUID.randomUUID().toString()) .path(url.getPath()) .server(visitor.getReader().getServer(url)) .httpMethod(Request.HttpMethod.GET) .recordedFiles(recordedFiles); requestBuilder.addAllExtractors(visitor.getCurrentExtractors()); requestBuilder.addAllValidators(visitor.getCurrentValidators()); requestBuilder.addAllHeaders(recordedHeaders); requestBuilder.addAllHeaders(visitor.getCurrentHeaders()); visitor.getCurrentHeaders().clear(); requestBuilder.addAllHeaders(visitor.getGlobalHeaders()); MethodUtils.queryToParameterList(url.getQuery()).forEach(requestBuilder::addParameters); return requestBuilder.build(); }
/** * * @param method represent the LR "web_submit_data" function * @return the associate POST_REQUEST */ public static PostRequest buildPostFormRequest(final LoadRunnerVUVisitor visitor, final MethodCall method) { final URL mainUrl = Preconditions.checkNotNull(getUrl(visitor.getLeftBrace(), visitor.getRightBrace(), method)); final Optional<Properties> snapshotProperties = getSnapshotProperties(visitor, method); final Optional<RecordedFiles> recordedFiles = getRecordedFilesFromSnapshotProperties(visitor, snapshotProperties); final List<Header> recordedHeaders = getHeadersFromRecordedFile(recordedFiles.flatMap(RecordedFiles::recordedRequestHeaderFile)); final ImmutablePostFormRequest.Builder requestBuilder = ImmutablePostFormRequest.builder() .name(mainUrl.getPath()) .path(mainUrl.getPath()) .server(visitor.getReader().getServer(mainUrl)) .httpMethod(getMethod(visitor.getLeftBrace(), visitor.getRightBrace(), method)) .recordedFiles(recordedFiles); getContentType(snapshotProperties).ifPresent(requestBuilder::contentType); requestBuilder.addAllExtractors(visitor.getCurrentExtractors()); requestBuilder.addAllValidators(visitor.getCurrentValidators()); requestBuilder.addAllHeaders(visitor.getCurrentHeaders()); visitor.getCurrentHeaders().clear(); requestBuilder.addAllHeaders(visitor.getGlobalHeaders()); requestBuilder.addAllHeaders(recordedHeaders); MethodUtils.extractItemListAsStringList(visitor, method.getParameters(), ITEMDATA, Optional.empty()) .ifPresent(stringList -> buildPostParamsFromExtract(stringList).forEach(requestBuilder::addPostParameters)); MethodUtils.queryToParameterList(mainUrl.getQuery()).forEach(requestBuilder::addParameters); return requestBuilder.build(); }
return Collections.emptyList(); final Server server = visitor.getReader().getServer(url);
.name(mainUrl.getPath()) .path(mainUrl.getPath()) .server(visitor.getReader().getServer(mainUrl)) .httpMethod(getMethod(visitor.getLeftBrace(), visitor.getRightBrace(), method)) .contentType(MethodUtils.getParameterValueWithName(visitor.getLeftBrace(), visitor.getRightBrace(), method, "EncType")) .name(mainUrl.getPath()) .path(mainUrl.getPath()) .server(visitor.getReader().getServer(mainUrl)) .httpMethod(getMethod(visitor.getLeftBrace(), visitor.getRightBrace(), method)) .contentType(MethodUtils.getParameterValueWithName(visitor.getLeftBrace(), visitor.getRightBrace(), method, "EncType"))