IT干货网

seleniummaster

wyy 2022年03月04日 编程设计 198 0

http://seleniummaster.com/sitecontent/index.php/component/banners/click/6

Step 1: create a Java project as shown below.  In the Build Path, add Selenium and JUnit libraries; download apache jar file from the link "IT虾米网" and add the file as External JARS. 

Step 2: write the code in WeatherApiTest.java class. 

package com.seleniummaster.apitest; 
 
import java.io.IOException; 
import java.util.concurrent.TimeUnit; 
import junit.framework.Assert; 
import org.apache.http.client.ClientProtocolException; 
import org.junit.After; 
import org.junit.Before; 
import org.junit.Test; 
import org.openqa.selenium.By; 
import org.openqa.selenium.WebDriver; 
import org.openqa.selenium.WebElement; 
import org.openqa.selenium.firefox.FirefoxDriver; 
 
@SuppressWarnings("deprecation") 
public class WeatherApiTest { 
	private WebDriver driver; 
	private String baseUrl; 
	@Before 
	public void setUp() throws Exception { 
		  driver = new FirefoxDriver(); 
		    baseUrl = "http://openweathermap.org/current"; 
		    driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS); 
		  } 
	 
 
	@After 
	public void tearDown() throws Exception { 
		 driver.close(); 
		 driver.quit(); 
	} 
 
	@Test 
	public void test() throws ClientProtocolException, IOException { 
		driver.get(baseUrl); 
		driver.navigate().to("http://api.openweathermap.org/data/2.5/weather?q=London");	 
	 WebElement webElement=driver.findElement(By.tagName("pre")); 
	 WeatherApiResponse weatherApiResponse=new WeatherApiResponse(); 
	 String ExpectedString=weatherApiResponse.GetResponse(); 
	 Assert.assertTrue(webElement.getText().equals(ExpectedString)); 
	} 
 
} 
 

Step 3: write the code in the WeatherApiResponse.java class

package com.seleniummaster.apitest; 
import java.io.BufferedReader; 
import java.io.IOException; 
import java.io.InputStreamReader; 
 
import org.apache.http.HttpResponse; 
import org.apache.http.client.ClientProtocolException; 
import org.apache.http.client.HttpClient; 
import org.apache.http.client.methods.HttpGet; 
import org.apache.http.impl.client.DefaultHttpClient; 
 
public class WeatherApiResponse { 
	 
	private final String USER_AGENT="Mozilla/5.0"; 
	public String GetResponse() throws ClientProtocolException, IOException 
	{ 
		StringBuffer result=new StringBuffer(); 
		HttpClient client=new DefaultHttpClient(); 
		String url="http://api.openweathermap.org/data/2.5/weather?q=London"; 
		HttpGet request=new HttpGet(url); 
		request.addHeader("User-Agent",USER_AGENT); 
		HttpResponse response=client.execute(request); 
		int responseCode=response.getStatusLine().getStatusCode(); 
		System.out.println("Response Code: " + responseCode); 
		try{ 
		if(responseCode==200) 
			 
		{ 
			System.out.println("Get Response is Successfull"); 
			BufferedReader reader=new BufferedReader(new InputStreamReader(response.getEntity().getContent())); 
			String line=""; 
			while((line=reader.readLine())!=null) 
			{ 
				result.append(line); 
				System.out.println(result.toString()); 
			} 
		} 
		return result.toString(); 
		 
	} 
		catch(Exception ex) 
	{ 
		result.append("Get Response Failed"); 
		return result.toString(); 
	} 
 
} 
} 
 

Step 4: run the file WeatherApiTest.java as JUnit Test. The test passed. Below is the console output

Response Code: 200 
Get Response is Successfull 
{"coord":{"lon":-0.13,"lat":51.51},"sys":{"type":1,"id":5093,"message":0.0202,"country":"GB","sunrise":1411451341,"sunset":1411494984},"weather":[{"id":721,"main":"Haze","description":"haze","icon":"50n"}],"base":"cmc stations","main":{"temp":282.35,"pressure":1024,"humidity":87,"temp_min":280.93,"temp_max":284.15},"wind":{"speed":1.33,"deg":208.502},"clouds":{"all":8},"dt":1411431497,"id":2643743,"name":"London","cod":200}

评论关闭
IT干货网

微信公众号号:IT虾米 (左侧二维码扫一扫)欢迎添加!