1.验证页面上的车贷计算器算的结果是否与需求中给的公式结果一致。

页面图片:

代码如下(简单实现,需要优化):

package com.test;

import java.math.BigDecimal;

import org.junit.Assert;
import org.openqa.selenium.By;
import org.testng.Reporter;
import org.testng.annotations.AfterClass;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.Listeners;
import org.testng.annotations.Test; import com.core.base.MidConvert; /**
* @author QiaoJiafei
* @version 创建时间:2015年12月4日 下午2:23:36
* 类说明
*/
@Listeners({com.core.base.BaseListener.class})
public class Testlaiyongche extends MidConvert{
String url = "http://172.16.30.243:8888/offical/home.action";
double car_shoujia = 5000000.36;//车辆售价
double car_other = 1000.55;//其他费
double car_sfbl = 40.21;//首付比例
int car_zuqi = 24;//车辆租期 @BeforeClass
public void before() {
super.initDriver();
//http://172.16.30.243:8888/offical/home.action
dr.get(url);
lc = cm.getLocator("linkText", "业务指南");
cm.click(lc);
try {
Thread.sleep(2000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
lc = cm.getLocator("className", "marginbottom20");
dr.findElement(By.className("marginbottom20")).findElements(By.tagName("button")).get(3).click();
}
@AfterClass
public void after() {
super.tearDown();
}
@Test
public void testSuiXin() {
testmain("极速融","1",car_zuqi);//1-新车,2-二手车,3-LCV,4-微面
testmain("极速融","2",car_zuqi);
testmain("极速融","3",car_zuqi);
} @Test
public void testJs() {
testmain("随心融","1",car_zuqi);
}
@Test
public void testKx() {
testmain("开心融","4",car_zuqi);
} public void testmain(String pd, String ct, int carz) {
String product = pd;//融资产品
String cartype = ct;//车辆类型
//车辆类型:
lc = cm.getLocator("id", "carType");
cm.select(lc, ct); //融资产品:
lc = cm.getLocator("id", "product");
cm.select(lc, product); //车辆售价:
lc = cm.getLocator("id", "carPrice");
cm.type(lc, String.valueOf(car_shoujia)); //其他费用:
lc = cm.getLocator("id", "otherPrice");
cm.type(lc, String.valueOf(car_other)); //车辆租期:
lc = cm.getLocator("id", "tenancy");
cm.select(lc, String.valueOf(car_zuqi)); //首付比例
lc = cm.getLocator("xpath", "/html/body/section[2]/div/div/div/div/div[2]/div[4]/div[1]/table[2]/tbody/tr[6]/td[2]/input");
cm.type(lc, String.valueOf(car_sfbl)); //保证金比例
String s = dr.findElement(By.id("bail")).getText();
double bzj = car_shoujia*Integer.parseInt(s)/100; lc = cm.getLocator("id", "calculation");
cm.click(lc);
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
double re_sfje = car_shoujia*car_sfbl/100 +bzj;//首付金额
double re_rzje = car_shoujia - re_sfje + car_other;//融资金额 double nll = 0;//月利率
if(product.equals("随心融")) {
nll = 0.17680;
}else if(product.equals("极速融")) {
if(cartype.equals("1")) {
nll = 0.17680;
}else if (cartype.equals("2")) {
nll = 0.18680;
}else if(cartype.equals("3")) {
nll = 0.19680;
}
}else if (product.equals("随意融")) {
nll = 0.18680;
}else if(product.equals("开心融")) {
nll = 0.25970;
}else if (product.equals("爱心融")) {
nll = 0.19680;
}
double yll = nll / 12;
double a = 1+yll;
double b = car_zuqi;
double temp = Math.pow(a, b); double re_yg = (re_rzje*yll*temp)/(temp-1);//月供金额
//BigDecimal bd1 = new BigDecimal(re_yg);
//double f1 = bd1.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue(); double re_rg = re_yg/30;//日供
//BigDecimal bd2 = new BigDecimal(re_rg);
//double f2 = bd2.setScale(1, BigDecimal.ROUND_HALF_UP).doubleValue(); String ac_rzje = dr.findElement(By.id("financingAm")).getText();
String ac_sfje = dr.findElement(By.id("firstPay")).getText();
String ac_yg = dr.findElement(By.id("monthlyPay")).getText();
String ac_rg = dr.findElement(By.id("dayPay")).getText();
//System.out.println(ac_rzje+"------------"); Assert.assertEquals(new java.text.DecimalFormat("#.##").format(re_rzje), ac_rzje);
Assert.assertEquals(new java.text.DecimalFormat("#.##").format(re_sfje), ac_sfje);
Assert.assertEquals(new java.text.DecimalFormat("#.##").format(re_yg), ac_yg);
Assert.assertEquals(new java.text.DecimalFormat("#.##").format(re_rg), ac_rg); Reporter.log(pd+","+ct+",测试通过");
}
}

selenium验证车贷计算器算法的更多相关文章

  1. IOS OC 计算器算法(不考虑优先级)

    个人见解:为还在计算器算法方面迷惑的同学一个数据处理解决方案:定义一个可变数组array,一个可变字符串str,使字符通过[array addObject:str];方法添加到可变数组,每当触发运算符 ...

  2. Python开发——利用正则表达式实现计算器算法

    Python开发--利用正则表达式实现计算器算法 (1)不使用eval()等系统自带的计算方法 (2)实现四则混合运算.括号优先级解析 思路: 1.字符串预处理,将所有空格去除 2.判断是否存在括号运 ...

  3. iOS 收款计算器算法

    一个收款计算器算法,从之前高仿有赞Demo里面抽离的一个界面 demo 在这里 https://github.com/L-vinCent/calculView_function 显示计算记录 不能连续 ...

  4. 基于COCO数据集验证的目标检测算法天梯排行榜

    基于COCO数据集验证的目标检测算法天梯排行榜 AP50 Rank Model box AP AP50 Paper Code Result Year Tags 1 SwinV2-G (HTC++) 6 ...

  5. hdoj 2063 过山车【匈牙利算法+邻接矩阵or邻接表】

    过山车 Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submiss ...

  6. Selenium 验证picklist是可被正确选中且是有序的(动态数组赋值)

    原代码: <select id="edit-submitted-im-interesting-in" class="form-select required&quo ...

  7. hdu 2063 过山车【匈牙利算法】(经典)

    <题目链接> RPG girls今天和大家一起去游乐场玩,终于可以坐上梦寐以求的过山车了.可是,过山车的每一排只有两个座位,而且还有条不成文的规矩,就是每个女生必须找个个男生做partne ...

  8. hdu-2063-过山车(匈牙利算法)

    过山车 Problem Description RPG girls今天和大家一起去游乐场玩,终于可以坐上梦寐以求的过山车了.可是,过山车的每一排只有两个座位,而且还有条不成文的规矩,就是每个女生必须找 ...

  9. HDU 2063.过山车-Hungary(匈牙利算法)

    过山车 Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submiss ...

随机推荐

  1. custom struts framework

    1. Difference between stucts1 and struts2 struts1 : Servlet used as Controller , you can visit the S ...

  2. Couchbase介绍,更好的Cache系统

    在移动互联网时代,我们面对的是更多的客户端,更低的请求延迟,这当然需要对数据做大量的 Cache 以提高读写速度. 术语 节点:指集群里的一台服务器. 现有 Cache 系统的特点 目前业界使用得最多 ...

  3. eclipse中的web项目路径和发布好的项目路径

    现在企业开发中,我们都会创建一个javaWeb工程,在eclipse中指的是新建一个dynamic web project,创建完工程之后,我们在IDE中大体看到如下的工程目录: 我们主要关心的文件夹 ...

  4. VS 2013 Preview 自定义 SharePoint 2013 列表 之 两个Bug

    SharePoint 2013 已RTM了,对于程序员来说又要了解新功能了,同时 VS 2013 也将要 RTM了,两者同时应用定会有不新功能,我们先从 自定义 列表开始. SharePoint 20 ...

  5. 安装SQL Server Management Studio Express错误码是29506

    解决方法:1:新建一个记事本,输入msiexec /i path\SQLServer2005_SSMSEE.msi 然后另存为.cmd格式.2:右单击刚刚创建的那个.CMD文件,选择“以管理员身份运行 ...

  6. arcgis python 更新顺序号

    i = 0def myFun(): global i i=i +1 return i myFun() ========================== accumulate(  ) total = ...

  7. For循环语句的使用

    一.For循环语句 说明:For循环用于循环次数已经确定的情况下.  格式:for(循环变量赋初值; 循环条件; 循环变量增值)       {             ·····语句  } 举例:求 ...

  8. oracle pfile spfile

    1.参数文件的定义.作用 oracle数据库通过一系列参数来对数据库进行配置.这些参数是以键-值对的形式来表 示的,如:MAXLOGFILES=50BACKGROUND_DUMP_DEST=C:DUM ...

  9. “Stamping” PDF Files Downloaded from SharePoint 2010

    http://blog.falchionconsulting.com/index.php/2012/03/stamping-pdf-files-downloaded-from-sharepoint-2 ...

  10. iOS 学习 - 8 TableViewCell 自适应高度

    思路:计算文字的高度,存进数组 加注:存在中文,需要加一行文字的高度,也就是 font 主要代码 #pragma mark -- UITableViewDelegate - (CGFloat)tabl ...