selenium验证车贷计算器算法

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+",测试通过");
    }
}
时间: 2024-08-08 13:56:08

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

JAVA计算器算法实现

import java.awt.BorderLayout; import java.awt.GridLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JPanel; public class BorderJFrame extends JFr

iOS 收款计算器算法

一个收款计算器算法,从之前高仿有赞Demo里面抽离的一个界面 demo 在这里 https://github.com/L-vinCent/calculView_function 显示计算记录 不能连续输入俩个计算符号 小数点的位数不能超过俩位 单个小数点的时候不能输入 00 点击 + ,直接显示计算结果,正则匹配计算 设置最大显示金额 - (IBAction)calculate:(UIButton *)sender { UIButton *btn=(UIButton *)sender; NSAr

陆金所、人人贷、好车贷:理财APP哪家强

三月即将结束,不知大家去年的年终奖有没有被形式多样的压岁钱.彩礼分刮一空呢?如果不幸膝盖中箭的话,那就赶紧开始新一年的赚钱大计吧!全民理财的时代中,大家应该了解财富不仅是积攒出来的,还是理出来的.现在小编就简单整理几家知名度较高的手机理财APP,大家可以很据自己的需求,自行选择最安全可靠的资金保障计划,随时随地进行资金管理,让大家在2015年duang duang 富起来! 陆金所:担保机构担保模式,背靠大树好乘凉. 在众多的P2P网贷平台中,陆金所算是衔玉而生,凭借强大的亲妈中国平安集团,陆金

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

<题目链接> RPG girls今天和大家一起去游乐场玩,终于可以坐上梦寐以求的过山车了.可是,过山车的每一排只有两个座位,而且还有条不成文的规矩,就是每个女生必须找个个男生做partner和她同坐.但是,每个女孩都有各自的想法,举个例子把,Rabbit只愿意和XHD或PQK做partner,Grass只愿意和linle或LL做partner,PrincessSnow愿意和水域浪子或伪酷儿做partner.考虑到经费问题,boss刘决定只让找到partner的人去坐过山车,其他的人,嘿嘿,就站

自己做的一种计算器算法的设计..不知道代码是否有bug

1 package Test; 2 import java.util.Scanner; 3 /** 4 * 设计一个计算器,实现多行输入,并分别输出结果 5 * 输入: 6 * 4/2+5+9*7-9 7 * 3*2+8/2-7+2 8 * 3+8*4-5+3+1 9 * 9/4/2+7-6-1 10 * 输出: 11 * 61 12 * 5 13 * 34 14 * @author litaiqing 15 * 16 */ 17 public class Test { 18 public st

验证用户的基本算法

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%><%String path = request.getContextPath();String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServ

杭电2064----过山车『匈牙利算法』

1 //匈牙利算法模版题 2 #include <cstdio> 3 #include <vector> 4 #include <cstring> 5 using namespace std; 6 const int maxn = 505; 7 vector<int> v[maxn]; 8 int vis[maxn],match[maxn]; 9 bool dfs(int t) 10 { 11 for(int i = 0; i < v[t].size(

hdu 2063 过山车 (最大匹配 匈牙利算法模板)

匈牙利算法是由匈牙利数学家Edmonds于1965年提出,因而得名.匈牙利算法是基于Hall定理中充分性证明的思想,它是部图匹配最常见的算法,该算法的核心就是寻找增广路径,它是一种用增广路径求二分图最大匹配的算法. 题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=2063 题目大意: 中文题目,点进去马上知道. 解题思路: 这道题目就是求最大匹配数目,直接套用匈牙利算法模板,这个算法大概原则就是:有机会上,没有机会创造机会也要上. 代码: 1 #i

java栈实现简易计算器算法

问题描述: 对于任意字符串,包含+ - * /和括号, 求出该表达式的值 首先百度该问题,网上有不少答案,但是实际思考,发现,很多答案没有考虑完全,例如: -1+(-2)*3       遇到负号怎么办? 现贴出代码如下: 1 package calcultor; 2 3 import java.util.Stack; 4 5 public class Calcultor { 6 7 static boolean isNumber(char x) { 8 if (x >= '0' &&