import static org.hamcrest.Matchers.containsString;
import static org.junit.Assert.assertThat;
import java.io.IOException;
import org.apache.http.client.ClientProtocolException;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.Parameters;
import org.testng.annotations.Test;
import autoWebApiRequest.HttpRequest;
public class UnsubscribesTestCaseTNG {
String testString ;
String add_unsubscribes ;
@BeforeClass
public void setUp() throws Exception {
this.testString = "https://xxx.xxxx";
this.add_unsubscribes = this.testString +
"xxx.xxxx";
}
public static void testAssert(String tString, String resultString){
String eString;
try {
eString = HttpRequest.webApiResult(tString);
assertThat(eString, containsString(resultString));
} catch (ClientProtocolException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
@Test
@Parameters({"resultString","userName","pwd","email"})
public void add_unsubscribes(String resultString,String userName, String pwd,String email) {
String tString = add_unsubscribes + "api_user="+userName+"&api_key="+pwd+"&email="+email;
System.out.println(tString);
testAssert(tString, resultString);
}
}
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.List;
import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.HttpClient;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.message.BasicNameValuePair;
public class HttpRequest {
//发送一般Get请求
public static String webApiResult(String url) throws ClientProtocolException, IOException{
String str = null;
HttpClient httpclient = new DefaultHttpClient();
// 创建Get方法实例
HttpGet httpgets = new HttpGet(url);
HttpResponse response = httpclient.execute(httpgets);
HttpEntity entity = response.getEntity();
if (entity != null) {
InputStream instreams = entity.getContent();
str = convertStreamToString(instreams);
httpgets.abort();
}
return str;
}
}
使用testNG完成一般httpclient发送请求的测试
1 定义request发送方法
2 定义testNG发送数据
3 获取response消息,并对比结果
分享到:
相关推荐
Java+Selenium+Maven+TestNG自动化测试框架是现代软件开发中的一个重要组成部分,尤其是在Web应用程序的质量保证阶段。这个实例项目展示了如何将这四个强大的工具集成为一套完整的自动化测试解决方案。 **Java**: ...
ant+eclipse+testng实例代码。包含了配置testng.xml和ant的build.xml文件。导入到eclipse中可以直接运行。前提是eclipse中已经安装了testng插件和ant插件。相关的jar包需要引用进来。
本文内容包括:关于代码TestNG快速起步定义测试组配置方法异常检测结束语JUnit框架是Java语言单元测试当前的一站式解决方案。这个框架值得称赞,因为它把测试驱动的开发思想介绍给Java开发人员并教给他们如何有效地...
5. **依赖注入**:TestNG支持依赖注入,可以通过@注入注解将对象实例化并注入到测试类中,减少代码的耦合度。 6. **报告生成**:TestNG提供了内置的HTML测试报告,详细记录每个测试用例的结果,包括失败的堆栈跟踪...
4. **依赖注入**:由于Spring管理bean的生命周期,你可以直接在测试方法中注入需要的bean,无需手动创建实例。这有助于保持测试的简洁性和可维护性。 5. **并行测试**:TestNG支持并行测试,可以在测试套件级别或...
3. 综合类测试:不需要为每个测试方法创建单独的测试类实例。 4. 运行时配置:测试代码与运行时配置分离,允许动态数据驱动测试。 5. 灵活的运行时配置:通过“测试组”概念,可以选择运行特定类型的测试,如快速...
这个“TestNG demo代码”可能包含了以上部分或全部概念的实例,展示了如何在实际项目中应用TestNG进行测试。通过学习和理解这些示例,你可以更好地掌握TestNG的用法,并提升你的测试自动化能力。
在集成Spring和TestNG的过程中,只需让测试类继承`AbstractTestNGSpringContextTests`或`AbstractTransactionalTestNGSpringContextTests`等Spring提供的支持类,即可实现对Spring管理的对象进行测试而无需手动加载...
【标题】"maven+testng+extenreport项目"是一个综合性的自动化测试框架实例,它结合了Maven构建工具、TestNG测试框架以及ExtendReport测试报告生成器。这个项目旨在提供一个完整的测试解决方案,从项目的构建管理到...
4. **依赖注入(Dependency Injection)**:TestNG支持依赖注入,允许测试类获取所需的对象实例,而无需手动创建。 5. **数据驱动测试(Data Driven Testing)**:TestNG的@DataProvider可以为测试方法提供多组输入...
5. **工厂方法**:用于创建测试对象的方法,可以用来动态创建测试实例。 #### 四、TestNG 的配置和运行 - **testng.xml**:这是 TestNG 的配置文件,用于定义测试套件、测试类和测试方法的运行方式。 - **命令行...
2. **创建HttpClient实例**:在测试代码中,我们需要创建一个HttpClient实例。这可以通过`HttpClientBuilder`类来实现,可以定制化连接管理、超时设置等选项。 3. **构建HTTP请求**:使用HttpClient提供的方法,如`...
4. **依赖注入**:TestNG支持依赖注入,允许将对象实例传入测试方法,减少了代码的耦合度,简化了测试用例的编写。 5. **测试分组**:测试可以被分配到不同的组,通过@Groups注解可以控制哪些测试应该运行,哪些...
- **综合类测试**: 默认情况下,TestNG不需要为每个测试方法创建单独的测试类实例,这简化了测试代码的组织。 - **编译时与运行时分离**: 测试代码与运行时的配置和数据信息分开处理,提高了灵活性。 - **灵活的运行...
3. **类测试支持**:不必为每个测试方法创建单独的测试类,TestNG支持默认情况下重用类实例。 4. **独立的编译时间与运行时配置**:测试代码与运行时配置分离,允许在不重新编译的情况下改变测试配置。 5. **运行时...
11. 动态测试创建:通过Factories可以动态创建测试实例。 12. 并行测试执行:可以指定测试在多个线程中并行运行,同时支持在同一线程内运行有依赖关系的测试。 13. 测试包含条件:支持使用BeanShell来指定在eclipse-...
在这个例子中,`@Mock`注解创建了一个模拟的`UserRepository`,`@InjectMocks`注解将这个模拟对象注入到了`UserService`实例中。`when(...).thenReturn(...)`语句定义了`userRepository.getUserById`方法的行为,当...
Appium+TestNG自动化测试是现代移动应用测试领域中一种高效的方法,尤其在Android平台上。这个主题涵盖了如何结合这两个强大的工具来...同时,提供的源码和针对该App的测试实例能帮助初学者更好地理解和实践这一技术。