android+web测试基础3-3+购物车相关的测试用例

最近做了京东购物车相关的测试用例

1.将购物车内所有商品进行结算看价格是否跟结算价格一致

#-*- coding:utf-8 -*-
import  unittest
from util import firefoxutil,urlutil
class ShopCar(unittest.TestCase):
    # 实例化 对象用的
    @classmethod
    def setUpClass(self):
        # 实例化对象
        self.firefox=firefoxutil.FireFox()
        #实例化url
        self.URL=urlutil.URL()
        pass
    def setUp(self):
       self.firefox.firefox_start(self.URL.JD_SHOP_CAR)
       pass
    def tearDown(self):
        self.firefox.firefox_close()
        pass
    def test_shop_car(self):
        # 点击登陆按钮
        self.firefox.ClickLink("登录")

        # 设置休眠,以为有frame 需要弹出,所以需要时间让他弹出 设置五秒休眠
        self.firefox.TimeSleep(firefoxutil.ENUMS.FIVE_TIME)

        # 切换到frame
        self.firefox.seitch_to_id_frame("dialogIframe")
        # 点击账号登陆
        self.firefox.ClickClass("login-tab-r")
        # 输入用户名 密码 以及点击登陆按钮
        self.firefox.SendkeysID("loginname", "15284391655")
        self.firefox.SendkeysID("nloginpwd", "fei961216")
        # 点击登陆
        self.firefox.ClickID("loginsubmit")
        # 第一条购物车流程的的测试用例,点击全部选择商品,将商品所有的总价加起来
        self.firefox.ClickName("toggle-checkboxes")
        # 设置休眠时间,设置休眠的原因是因为我们在点击全部选中的时候,需要时间去反应过来,同时向服务器提交数据
        self.firefox.TimeSleep(firefoxutil.ENUMS.FIVE_TIME)
        #判断每一件商品的选择按钮有没有点上
        self.checkItems=self.firefox.FindNames("checkItem")
        #使用for 循环判断有没有选择上
        #在这里因为上面点击的全部选中,又因为购物车的数据是存在服务器上面的
        #那如果全部选中了,那么下一次再点击全部选中就成了一个都没有选中,
        # 所以我们需要对 checkbox 进行判断,如果选中了,就不点,没选中,我就给他全部手动选中
        for index in self.checkItems:
            if index.get_attribute("checked")!="true":
                index.click()
                # 设置休眠,原因是这里点击for循环太快,而点击选中,需要向服务器提交数据
                self.firefox.TimeSleep(firefoxutil.ENUMS.TWO_TIME)
        #计算五件商品的总价与总计的价格是不是相等
        #开始查找一组元素 返回是list列表
        self.prices=self.firefox.FindXpaths("//div[@class='item-form']/div[6]/strong")
        #使用for循环打印
        #注意网页里获取内容是unicode编码格式
        #首先我们需要对unicode格式进行编码,编码为utf-8格式
        #对编码的格式进行替换¥提交为空,在专为float类型,就可以进行加法运算`
        self.checkItems = self.firefox.FindNames("checkItem")
        #定义sum进行相加
        sums=0
        for index in range(0,len(self.prices)):
            #得到内容
            price_before=self.prices[index].text
            #进行utf-8编码
            price_aftre=price_before.encode("UTF-8")
            #对字符串进行转换
            price_replace=price_aftre.replace("¥"," ")
            #最后转为float类型
            price_float= float(price_replace)
            #打印内容
            print  price_float
            #判断如果是选中就加起来,没有选择的就不加起来
            print self.checkItems[index].get_attribute("checked")
            if self.checkItems[index].get_attribute("checked")=="true":
                sums+=price_float
        print  "总价",sums
        # 查找总价的控件,进行断言 xpath
        ems=self.firefox.FindXpath("//div[@class='price-sum']/div/span/em").text.encode("utf-8").replace("¥","")
        message=float(ems)
        self.assertEqual(sums,message)
        pass
自己慢慢看,会看懂的,至少比mvp强,哈哈哈
2. 第二条就是比如说我们购物车里有五件商品,我们做一个操作,第一件商品我们不点,后四件商品我们选上
#-*- coding:utf-8 -*-
import  unittest
from util import  firefoxutil,urlutil
class ShopCheckBox(unittest.TestCase):
    @classmethod
    def setUpClass(self):
        self.firefox=firefoxutil.FireFox()
        self.URL=urlutil.URL()
        pass
    def setUp(self):
        self.firefox.firefox_start(self.URL.JD_SHOP_CAR)
        pass
    def tearDown(self):
        self.firefox.firefox_close()
        pass
    def shop_login(self):
        # 点击登录按钮,登录进去
        # 点击登陆按钮
        self.firefox.ClickLink("登录")

        # 设置休眠,以为有frame 需要弹出,所以需要时间让他弹出 设置五秒休眠
        self.firefox.TimeSleep(firefoxutil.ENUMS.FIVE_TIME)

        # 切换到frame
        self.firefox.seitch_to_id_frame("dialogIframe")

        # 点击账号登陆
        self.firefox.ClickClass("login-tab-r")

        # 输入用户名 密码 以及点击登陆按钮
        self.firefox.SendkeysID("loginname", "13193571088")
        self.firefox.SendkeysID("nloginpwd", "123123.")

        # 点击登陆
        self.firefox.ClickID("loginsubmit")

        # 设置休眠,因为登录需要反应时间
        self.firefox.TimeSleep(firefoxutil.ENUMS.FIVE_TIME)
        pass
    def test_checkbox_four_one(self):
        self.shop_login()
        #测试用例如下,因为上面和下面都有全部选择按钮,首先我们点击上面全选按钮
        #接下来下面的五件商品有没有全部选中,如果全部选中,我们将第一个选择为不选中
        #如果没有全部选中,那我们就讲后面的四个选中,第一个不选中
        #如果有几个是选中的,有几个是未选中的,我们就将第一个不选中。后面几个选中

        #点击全部选中按钮
        self.firefox.ClickClass("jdcheckbox")
        # 查询五个checkbox是不是全部选中
        self.checkItems=self.firefox.FindNames("checkItem")
        # 使用 for循环取判断
        for index in range(0,len(self.checkItems)):
            #如果index为0,如果是选中状态我们就改成不选中,其他如果是不选中状态我们就改成选中状态
            if index==0:
                if self.checkItems[index].get_attribute("checked")=="true":
                    #点击一下,设置为不选中
                    self.checkItems[index].click()
                    #设置休眠,因为选中以后,需要服务器提交数据,需要时间刷新浏览器
                    self.firefox.TimeSleep(firefoxutil.ENUMS.TWO_TIME)
            else:
                if self.checkItems[index].get_attribute("checked")!="true":
                    self.checkItems[index].click()
                    self.firefox.TimeSleep(firefoxutil.ENUMS.TWO_TIME)
        # 我们再次重新查找控件,判断是不是第一个是未选中的,后面四个是选中的
        self.checkItems=self.firefox.FindNames("checkItem")
        # 使用 for循环 和断言来判断是不是符合我们的预期
        for index in range(0,len(self.checkItems)):
            if index ==0:
                #断言 获取的属性值是不是为空
                self.assertEqual(self.checkItems[index].get_attribute("checked"),None)
            else:
                #断言 是不是为true 因为我们选中返回的是true
                isSelect=self.checkItems[index].get_attribute("checked")
                self.assertTrue(isSelect)
        #通过class查询一组全部选选择控件
                self.jdcheckboxs=self.firefox.FindNames("toggle-checkboxes")
                #使用for循环
                for index in range(0,len(self.jdcheckboxs)):
                    print index
                    self.firefox.TimeSleep(firefoxutil.ENUMS.TWO_TIME)
                    #获取属性,进行断言,判断是不是选中
                    self.assertEqual(self.jdcheckboxs[index].get_attribute("checked"),None)
    #验证复选框的全部选中有没有效果
3.我们做的就是购物车的
def test_select_all(self):
    # 调用登陆的方法
    self.shop_login()
    #验证全部选中
    #默认选项框有两种情况存在
    #一种是全部被选中或者全部不被选中,或者有一部分选中一部分没有选中
    #我们要的肖国盛全部选中
    #查找购物车里面的复选框,无论多少个,通过列表返回
    self.checkItems=self.firefox.FindNames("checkItem")
    #for 循环
    for item in self.checkItems:
        #获取属性,进行判断
        if item.get_attribute("checked")!="true":
            #点击一下
            item.click()
            # 设置休眠的原因是因为网络加载需要时间
            self.firefox.TimeSleep(firefoxutil.ENUMS.TWO_TIME)

    #进行断言
    #查找全部选中按钮,看看有没有没选中
    self.toggle_checkboxes=self.firefox.FindNames("toggle-checkboxes")
    #使用for 循环进行断言
    for index in self.toggle_checkboxes:
        #断言
        self.assertEqual(index.get_attribute("checked"),"true")


就写这些啦,想到哪更到哪。。。。。


你可能感兴趣的:(测试)