- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我一直在尝试配置 Betamax v2.0.0-alpha-1 以从我的 spock 测试中模拟 HTTP(S) 调用。对非 SSL 站点的调用有效,但对 HTTPS 站点的调用导致以下异常:
javax.ws.rs.ProcessingException: javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
我已将代码简化为如下所示,调用 groovy BetamaxTestSpec.groovy
应该会给您异常。正如您在代码中看到的,我正在使用 jersey-client 库。
要点:https://gist.github.com/dedickinson/6ad96679a15b24b2e3d3
代码:
@Grab('org.spockframework:spock-core:1.0-groovy-2.4')
@Grab('software.betamax:betamax-junit:2.0.0-alpha-1')
@Grab('org.glassfish.jersey.core:jersey-client:2.22.1')
import org.junit.Rule
import software.betamax.ProxyConfiguration
import software.betamax.TapeMode
import software.betamax.junit.Betamax
import software.betamax.junit.RecorderRule
import spock.lang.Specification
import javax.ws.rs.client.ClientBuilder
import javax.ws.rs.core.MediaType
import groovy.json.JsonSlurper
class BetamaxTestSpec extends Specification {
@Rule
RecorderRule recorderRule = new RecorderRule(ProxyConfiguration.builder()
.sslEnabled(true)
.build())
@Betamax(tape = 'jCenterKeywordQuery.tape', mode = TapeMode.WRITE_ONLY)
def "Test basic keyword query with JCenter"() {
given:
def searcher = new Searcher()
def result = searcher.searchJCenter('groovy*')
expect:
1 == 1
}
@Betamax(tape = 'mvnKeywordQuery.tape', mode = TapeMode.WRITE_ONLY)
def "Test basic keyword query with Maven Central"() {
given:
def searcher = new Searcher()
def result = searcher.searchMavenCentral('groovy')
expect:
1 == 1
}
class Searcher {
def searchJCenter(qry) {
new JsonSlurper().parseText ClientBuilder.newClient().
target('https://api.bintray.com/search/packages/maven/'.toURI()).
queryParam('q', qry).
request(MediaType.APPLICATION_JSON_TYPE).get(String)
}
def searchMavenCentral(qry) {
new JsonSlurper().parseText ClientBuilder.newClient().
target('http://search.maven.org/solrsearch/select'.toURI()).
queryParam('q', qry).
queryParam('rows', 20).
queryParam('wt', 'json').
request().
get(String)
}
}
}
最佳答案
您需要将证书导入 JRE 才能使其正常工作。运行脚本后会出现两个文件(如注释中所示):- littleproxy_cert- littleproxy_keystore.jks
运行以下命令导入证书:
keytool -import -file littleproxy_cert -alias littleproxy -keystore $JAVA_HOME/jre/lib/security/cacerts
默认密码是changeit。你可能还没有改变它;)
附言为准备运行示例而投票 - 在这里仍然很少见。
关于testing - 如何配置 Betamax 以将 SSL 用于我的 Spock 测试?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36123420/
我的问题与 Betamax 库有关。我在记录 HTTPS 流量时遇到问题。我正在使用 Betamax 1.1.2、JDK 1.6、Groovy 2.2.2 和 jUnit 4.11。 我的测试代码:
我一直在尝试配置 Betamax v2.0.0-alpha-1 以从我的 spock 测试中模拟 HTTP(S) 调用。对非 SSL 站点的调用有效,但对 HTTPS 站点的调用导致以下异常: jav
我尝试在 Spring Boot 应用程序中设置 Betamax,但是当我运行测试时,出现此错误: (class: co/freeside/betamax/proxy/jetty/BetamaxPro
我是一名优秀的程序员,十分优秀!