移动应用测试---安居客

本文仅涉及方法,只供参考。 

package com.mooctest;

import io.appium.java_client.AppiumDriver;
import io.appium.java_client.AndroidKeyCode;
import java.io.File;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.List;
import java.util.concurrent.TimeUnit;

import org.openqa.selenium.By;
import org.openqa.selenium.Keys;
import org.openqa.selenium.NoSuchElementException;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.remote.CapabilityType;
import org.openqa.selenium.remote.DesiredCapabilities;
import org.openqa.selenium.remote.UnreachableBrowserException;


public class Main {
	
	
	/**
	 * 所有和AppiumDriver相关的操作都必须写在该函数中
	 * @param driver
	 */
	public void test(AppiumDriver driver) {
		    	try {
			Thread.sleep(6000);		//等待6s,待应用完全启动
		} catch (InterruptedException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
    	driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS); //设置尝试定位控件的最长时间为8s,也就是最多尝试8s
      	 /*
    	 * 余下的测试逻辑请按照题目要求进行编写
    	 */
       	
//    	1. 编写脚本启动应用,将介绍页面滑动至最右端(提示:可使用 driver.swipe
//    	函数进行滑动操作),点击屏幕任意一处进入城市选择页面 ,在搜索框中输
//    	入南京,点击南京进入应用主页面
    	driver.swipe(820, 630, 70, 630, 800);
    	driver.swipe(820, 630, 70, 630, 800);
    	driver.findElementById("android:id/content").click();
    	driver.findElementById("com.anjuke.android.app:id/edittext").sendKeys("南京");
    	driver.findElementById("com.anjuke.android.app:id/select_city_tv_item").click();
    	
//    	8 点击推荐,进入推荐模块,对于图示模块进行遍历,仅要求到达,不要求进一
//    	步测试
    	//消息
    	driver.findElementByXPath("//android.widget.TextView[@text='消息']").click();
    	//推荐
    	driver.findElementByXPath("//android.widget.TextView[@text='推荐']").click();
    	driver.findElementByXPath("//android.widget.TextView[@text='租房']").click();
    	driver.findElementByXPath("//android.widget.TextView[@text='新房']").click();
    	driver.findElementByXPath("//android.widget.TextView[@text='二手房']").click();
    	driver.findElementByXPath("//android.widget.TextView[@text='商业地产']").click();
    	driver.findElementByXPath("//android.widget.TextView[@text='装修']").click();

    	//有料
    	driver.findElementByXPath("//android.widget.TextView[@text='有料']").click();
    	driver.findElementByXPath("//android.widget.TextView[@text='关注']").click();
    	driver.findElementByXPath("//android.widget.TextView[@text='热议']").click();
    	driver.findElementByXPath("//android.widget.TextView[@text='推荐']").click();
    	driver.findElementByXPath("//android.widget.TextView[@text='本地']").click();
    	driver.findElementByXPath("//android.widget.TextView[@text='房价']").click();
    	driver.findElementByXPath("//android.widget.TextView[@text='攻略']").click();
    	driver.findElementByXPath("//android.widget.TextView[@text='律师在线']").click();
    	driver.findElementByXPath("//android.widget.TextView[@text='户型改造']").click();
    	driver.findElementByXPath("//android.widget.TextView[@text='商业地产']").click();
    	driver.findElementByXPath("//android.widget.TextView[@text='海外']").click();
    	driver.findElementByXPath("//android.widget.TextView[@text='活动']").click();
    	//跳房子
    	driver.findElementByXPath("//android.widget.TextView[@text='挑好房']").click();
    	driver.navigate().back();
    	driver.findElementByXPath("//android.widget.TextView[@text='视频直播']").click();
    	driver.navigate().back();
    	driver.findElementByXPath("//android.widget.TextView[@text='问答']").click();
    	driver.navigate().back();
    	driver.findElementByXPath("//android.widget.TextView[@text='安居头条']").click();
    	driver.navigate().back();
    	driver.findElementByXPath("//android.widget.TextView[@text='购房百科']").click();
    	driver.navigate().back();
    	//首页
    	driver.findElementByXPath("//android.widget.TextView[@text='首页']").click();
 
    	
//    	2. 点击主页面的房价一栏的南京房价,进入房价选择页面,点击+关注,并查
//    	看新房的房价情况,在新房的房价情况页面分别选择近 1 年或近 3 年进行查看
    	//房价
    	driver.findElementById("com.anjuke.android.app:id/price_address_text_view").click();
//    	//关注
//    	driver.findElementById("com.anjuke.android.app:id/title_text_view").click();
//    	driver.navigate().back();
//    	driver.swipe(455, 2090, 455,1200, 1000);
    	//新房
    	driver.findElementById("com.anjuke.android.app:id/new_house_tv").click();
    	//一年
    	driver.findElementById("com.anjuke.android.app:id/near_three_years_text_View").click();
    	driver.findElementById("com.anjuke.android.app:id/near_one_years_text_View").click();
    	driver.navigate().back();
    	System.out.println("返回一页");
    	driver.navigate().back();
    	System.out.println("返回两页");
    	
    	
//    	3. 返回主页面,点击新房,点击房贷计算,填写总价 500,点击开始计算,查
//    	看等额本息和等额本金,点击重新计算,点击历史按钮查看计算历史
    	driver.findElementByXPath("//android.widget.TextView[@text='新房']").click();
    	driver.findElementByXPath("//android.widget.TextView[@text='房贷计算']").click();
    	//总价500
    	driver.findElementById("com.anjuke.android.app:id/field_price_value").sendKeys(Keys.CONTROL,"a");
    	driver.findElementById("com.anjuke.android.app:id/field_price_value").sendKeys("500");
    	//开始计算
    	driver.findElementById("com.anjuke.android.app:id/publish_btn").click();
    	//等额本金
    	driver.findElementById("com.anjuke.android.app:id/btn_principle").click();
    	//等额本息
    	driver.findElementById("com.anjuke.android.app:id/btn_interest").click();
    	//重新计算
    	driver.findElementByXPath("//android.widget.TextView[@text='重新计算']").click();
    	//历史
    	driver.findElementById("com.anjuke.android.app:id/btnright").click();
    	driver.findElementById("com.anjuke.android.app:id/collapse_btn").click();
    	driver.navigate().back();
    	System.out.println("返回了一页");
    	driver.navigate().back();
    	System.out.println("返回了2页");
    	//聊天
//    	driver.findElementById("com.anjuke.android.app:id/wchat_msg_image_btn").click();
//    	driver.navigate().back();
    	
//    	4. 返回新房信息所在页面,点击第一条房源信息,点击关注变价,关注开盘以及
//    	关注按钮,并点击加入对比按钮,然后点击左上角的比价按钮进行比价房源
//    	选择,如图所示,选择猜你喜欢的前两套房源,然后点击开始对比
//    	用以下方
//    	式定位第
//    	一条房源
//    	信息:
//    	driver.find
//    	ElementsB
//    	yId(“com.a
//    	njuke.andr
//    	oid.app:id/
//    	thumb_im
//    	g_iv”).get(
//    	0).click
//    	点击有“比”
//    	字样的按钮
//    	进行比较房
//    	源选择
//    	5. 退回主页面,点击消息,进入消息模块,按图示要求进行测试
//    	这部分仅需到达,不需
//    	要进一步测试
//    	对于热门群聊和优秀
//    	置业顾问,分别对第一
//    	条进行测试,点击后的
//    	所有子页面仅需到达
//    	6. 点击有料,进入有料模块,对于推荐一栏的所有模块进行遍历
//    	7. 对于安居头条,挑好房,视频直播板块仅需要到达,不需要进一步的测试。
//    	对于问答模块,需要对买房/买房/贷款/交易过户/租房模块进行遍历,并点
//    	击我要提问,在输入框内输入“南大和园多少钱一平方”,点击提交。再对购
//    	物百科模块测试。
//    	遍历所有模块,
//    	仅要求到达,不
//    	需要进一步测试
//    	输入“南大和园多少钱一平方”
//    	对于上方所有条目和左侧所有选
//    	项进行遍历,仅要求到达,不需
//    	要进一步测试

//
    	
    	


	}
	
	/**
	 * AppiumDriver的初始化逻辑必须写在该函数中
	 * @return
	 */
	public AppiumDriver initAppiumTest() {
		
		AppiumDriver driver=null;
        File classpathRoot = new File(System.getProperty("user.dir"));
        File appDir = new File(classpathRoot, "apk");
        File app = new File(appDir, "Anjuke.apk");
        
        //设置自动化相关参数
        DesiredCapabilities capabilities = new DesiredCapabilities();
        capabilities.setCapability("browserName", "");
        capabilities.setCapability("platformName", "Android");
        capabilities.setCapability("deviceName", "Android Emulator");
        capabilities.setCapability("noSign", "true");

        //设置apk路径
        capabilities.setCapability("app", app.getAbsolutePath()); 
        
        //设置app的主包名和主类名
        capabilities.setCapability("appPackage", "com.anjuke.android.app");
        capabilities.setCapability("appActivity", "com.anjuke.android.app.WelcomeActivity");
        //设置使用unicode键盘,支持输入中文和特殊字符
        capabilities.setCapability("unicodeKeyboard","true");
        //设置用例执行完成后重置键盘
        capabilities.setCapability("resetKeyboard","true");
        //初始化
        try {
			driver = new AppiumDriver(new URL("http://127.0.0.1:4723/wd/hub"), capabilities);
		} catch (MalformedURLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}   
        return driver;
	}
	
	public void start() {
		test(initAppiumTest());
	}
	
	public static void main(String[] args) {
		Main main = new Main();
		main.start();
	}
	

}

 

你可能感兴趣的:(慕测-移动应用&自主可控)