Example #1
0
class Test_register(unittest.TestCase):
    def setUp(self) -> None:
        self.oper = OperationExcel(CONFIG_FILE)
        #实例化db
        self.db = DB()
        self.url = 'http://ecshop.itsoso.cn/ECMobile/?url=/user/signup'
        self.fk = Faker('zh_CN')

    def test_case_01(self):
        """正向数据注册"""
        name = self.fk.user_name() # 姓名
        email = self.fk.email()  # 邮箱
        phone = self.fk.phone_number()  # 手机号
        password = self.fk.password() # 密码
        id = self.fk.pyint()  # 随机整数
        add_list = []
        add_list.extend([name,email,phone,password])
        self.oper.write_excel(add_list)
        data = {"field": [{"id": id, "value": f"{phone}"}],
                "email": f"{email}", "name": f"{name}",
                "password": f"{password}"}
        response = Interface_register.regiester(method='post',url=self.url,data=data)
        self.result = get_result_one(response, 'succeed')
        self.assertEqual(self.result,1)


        sql = f"select count(*) from ecs_users where user_name = '{name}'"
        datas = self.db.find_one(sql)
        num = datas['count(*)']
        self.assertEqual(num,1)



        del_sql = f"delete from ecs_users where user_name='{name}'"
        self.db.execute(del_sql)


    @ddt.data(*test_data)
    def test_case_02(self,data):
        """逆向数据注册"""
        data = {"field": [{"id": 123, "value": f"{data['phone']}"}],
                "email": f"{data['email']}", "name": f"{data['name']}",
                "password": f"{data['password']}"}
        response = Interface_register.regiester(method='post', url=self.url, data=data)
        result = get_result_one(response, 'succeed')
        self.assertEqual(result,0)


        #写一个sql语句
        sql = f"select count(*) from ecs_users where user_name = '{data['name']}'"
        #执行sql
        datas = self.db.find_one(sql)
        num = datas['count(*)']
        self.assertEqual(num,0)

        del_sql = f"delete from ecs_users where user_name='{data['name']}'"
        self.db.execute(del_sql)
Example #2
0
class TestCollect(unittest.TestCase):
    def setUp(self):
        self.sid, self.uid = Login.login()
        self.db = DB()

    def test_collect_01(self):
        """收藏商品"""
        url = "http://ecshop.itsoso.cn/ECMobile/?url=/user/collect/create"  # 添加收藏的网址
        method = "post"
        add_collect_data = {
            "session": {
                "uid": f"{self.uid}",
                "sid": f"{self.sid}"
            },
            "goods_id": 64
        }
        response = Interface.add_collection(method=method,
                                            url=url,
                                            data=add_collect_data)  #请求添加收藏接口
        # print(SendMethod.response_dumps(response))

        sql = 'select count(*) from ecs_collect_goods where user_id="4349" and goods_id="64"'
        data = self.db.find_one(sql)
        num = data['count(*)']
        self.assertEqual(num, 1)

        # status = get_result_one(response, "succeed")
        # self.assertEqual(status, 1)

    def test_collect_02(self):
        """查看收藏的商品"""
        res = self.check_goods()[1]
        sql = 'select count(*) from ecs_collect_goods where user_id="4349"'
        data = self.db.find_one(sql)
        nums = data['count(*)']
        self.assertEqual(int(res), nums)

    def check_goods(self):
        """查看收藏的商品"""
        look_url = "http://ecshop.itsoso.cn/ECMobile/?url=/user/collect/list"  #查看收藏的网址
        method = 'post'
        look_data = {
            "session": {
                "uid": f"{self.uid}",
                "sid": f"{self.sid}"
            },
            "pagination": {
                "count": 10,
                "page": 1
            },
            "rec_id": 0
        }
        look_response = Interface.look_collection(method=method,
                                                  url=look_url,
                                                  data=look_data)  #请求查看收藏的接口
        # print(SendMethod.response_dumps(look_response))
        total = get_result_one(look_response, 'total')
        rec_id = get_result_one(look_response, "rec_id")
        print(rec_id)
        return rec_id, total

    def test_collect_03(self):
        """删除收藏的商品"""
        rec_id = self.check_goods()[0]
        del_url = "http://ecshop.itsoso.cn/ECMobile/?url=/user/collect/delete"  #删除收藏的网址
        method = "post"
        # print(self.rec_id)
        del_data = {
            "session": {
                "uid": f"{self.uid}",
                "sid": f"{self.sid}"
            },
            "rec_id": f"{rec_id}"
        }
        del_response = Interface.del_collection(method=method,
                                                url=del_url,
                                                data=del_data)

        sql = f'select count(*) from ecs_collect_goods where user_id="4349" and rec_id="{rec_id}"'
        datas = self.db.find_one(sql)
        data = datas["count(*)"]
        self.assertEqual(data, 0)
Example #3
0
 def findOne(cls,k,v):
     return cls(**DB.find_one(cls.collection,{k:v}))
Example #4
0
class Test_shopping(unittest.TestCase):
    def setUp(self) -> None:
        #实例化DB
        self.db = DB()
        #登录
        url = 'http://ecshop.itsoso.cn/ECMobile/?url=/user/signin'
        data = {"name": "lzj", "password": "******"}
        response = Interface_login.login(method='post', url=url, data=data)
        self.sid = get_result_one(response, 'sid')
        self.uid = get_result_one(response, 'uid')

    def test_case_01(self):
        #搜索商品
        url = 'http://ecshop.itsoso.cn/ECMobile/?url=/search'
        data = {
            "pagination": {
                "count": 100,
                "page": 1
            },
            "filter": {
                "keywords": "",
                "sort_by": "price_asc",
                "brand_id": "",
                "category_id": "25",
                "price_range": {
                    "price_min": 0,
                    "price_max": 0
                }
            }
        }
        response = Interface.search_shop(method='post', url=url, data=data)
        goods_id = get_result_all(response, 'goods_id')[-10]

        #点击商品
        cli_url = 'http://ecshop.itsoso.cn/ECMobile/?url=/goods'
        cli_data = {
            "goods_id": goods_id,
            "session": {
                "uid": f"{self.uid}",
                "sid": f"{self.sid}"
            }
        }
        Interface.click_shop(method='post', url=cli_url, data=cli_data)

        #加入购物车
        addcar_url = 'http://ecshop.itsoso.cn/ECMobile/?url=/cart/create'
        addcar_data = {
            "spec": [],
            "session": {
                "uid": f"{self.uid}",
                "sid": f"{self.sid}"
            },
            "goods_id": goods_id,
            "number": 1
        }
        addcar_response = Interface.add_shop_car(method='post',
                                                 url=addcar_url,
                                                 data=addcar_data)

        #选择支付方式
        check_url = 'http://ecshop.itsoso.cn/ECMobile/?url=/flow/checkOrder'
        check_data = {"session": {"uid": f"{self.uid}", "sid": f"{self.sid}"}}
        check_response = Interface.check_order(method='post',
                                               url=check_url,
                                               data=check_data)
        shipping_id = get_result_all(check_response, 'shipping_id')[1]
        pay_id = get_result_all(check_response, 'pay_id')[1]

        # #点击提交
        submit_url = 'http://ecshop.itsoso.cn/ECMobile/?url=/flow/done'
        submit_data = {
            "shipping_id": f"{shipping_id}",
            "session": {
                "uid": f"{self.uid}",
                "sid": f"{self.sid}"
            },
            "pay_id": f"{pay_id}"
        }
        sub_response = Interface.clikc_submit(method='post',
                                              url=submit_url,
                                              data=submit_data)
        print(SendMethod.response_dumps(sub_response))

        order_sn = get_result_one(sub_response, 'order_sn')

        sql = f"select count(*) from ecs_order_info where order_sn = '{order_sn}'"
        datas = self.db.find_one(sql)
        num = datas['count(*)']
        self.assertEqual(num, 1)
Example #5
0
 def getById(cls, id):
     x = DB.find_one(cls.collection, {'_id': id})
     return cls(**x)
Example #6
0
class TestAddress(unittest.TestCase):
    def setUp(self):
        self.sid, self.uid = Login.login()
        self.db = DB()

    def test_address_01(self):
        """新增地址--合法数据"""
        #测试之前先查看数量
        sql = "select count(*) from ecs_user_address where user_id = (select user_id from ecs_users where user_name = 'hxj123456')"
        datas = self.db.find_one(sql)
        num = datas['count(*)']
        add_url = "http://ecshop.itsoso.cn/ECMobile/?url=/address/add"#新增地址的网址
        method = "post"
        add_data = {"address":{"default_address":0,
                               "consignee":"han123",
                               "tel":"13350438199",
                               "zipcode":"620042",
                               "country":"1",
                               "city":"37",
                               "id":0,
                               "email":"*****@*****.**",
                               "address":"121321",
                               "province":"2",
                               "district":"404",
                               "mobile":""},
                    "session":{"uid":f"{self.uid}","sid":f"{self.sid}"}}
        add_response = Interface.add_dress(method=method,url=add_url,data=add_data)#请求新增地址的接口
        datas_2 = self.db.findone(sql)
        new_num = datas_2['count(*)']
        self.assertEqual(new_num, num +1)

    @ddt.data(*test_data)
    def test_address_02(self, data):
        """新增收货地址---非法数据"""
        sql = "select count(*) from ecs_user_address where user_id = (select user_id from ecs_users where user_name = 'hxj123456')"
        datas = self.db.find_one(sql)
        old = datas['count(*)']
        add_url = "http://ecshop.itsoso.cn/ECMobile/?url=/address/add"  # 新增地址的网址
        method = "post"
        add_data = {"address": {"default_address": 0,
                                "consignee": f"{data['consignee']}",
                                "tel": f"{data['tel']}",
                                "zipcode": "",
                                "country": "1",
                                "city": "151",
                                "id": 0,
                                "email": f"{data['email']}",
                                "address": f"{data['address']}",
                                "province": "14",
                                "district": "1603",
                                "mobile": ""},
                    "session": {"uid": f"{self.uid}", "sid": f"{self.sid}"}}
        Interface.upd_dress(method=method, url=add_url, data=add_data)
        data = self.db.find_one(sql)
        news = data['count(*)']
        self.assertEqual(old, news,msg="新增地址用非法数据新增成功")


    def address_03(self):
        """查看收货地址"""
        look_url = "http://ecshop.itsoso.cn/ECMobile/?url=/address/list"#查看收货地址的网址
        method = 'post'
        look_data = {"session":{"uid":f"{self.uid}","sid":f"{self.sid}"}}
        lool_response = Interface.look_dress(method=method, url=look_url, data=look_data)#请求查看地址的接口
        id  = get_result_one(lool_response,"id")
        # print(SendMethod.response_dumps(response=lool_response))
        return id

    def test_address_03(self):
        """查看收货地址"""
        res = self.address_03()


    def test_address_04(self):
        """修改收货地址"""
        id = self.address_03()
        print(id)
        upd_url = "http://ecshop.itsoso.cn/ECMobile/?url=/address/update"#修改收货地址的网址
        method = "post"
        consignee = '韩小居'
        upd_data = {"address":{"default_address":0,
                               "consignee":f"{consignee}",
                               "tel":"12315456",
                               "zipcode":"",
                               "country":"1",
                               "city":"151",
                               "id":0,
                               "email":"*****@*****.**",
                               "address":"天府新谷1",
                               "province":"14",
                               "district":"1603",
                               "mobile":""},
                    "address_id":f"{id}",
                    "session":{"uid":f"{self.uid}","sid":f"{self.sid}"}}
        upd_response = Interface.upd_dress(method=method,url=upd_url,data=upd_data)
        sql  =f'select consignee from ecs_user_address where address_id = "{id}"'
        data = self.db.find_one(sql)
        name = data['consignee']
        self.assertEqual(consignee,name)


    @ddt.data(*test_data)
    def test_address_05(self,data):
        """修改收货地址---非法数据"""
        id = self.address_03()
        sql = f'select consignee from ecs_user_address where address_id = "{id}"'
        old = self.db.find_one(sql)
        olds = old['consignee']
        upd_url = "http://ecshop.itsoso.cn/ECMobile/?url=/address/update"#修改收货地址的网址
        method = "post"
        upd_data = {"address":{"default_address":0,
                               "consignee":f"{data['consignee']}",
                               "tel":f"{data['tel']}",
                               "zipcode":"",
                               "country":"1",
                               "city":"151",
                               "id":0,
                               "email":f"{data['email']}",
                               "address":f"{data['address']}",
                               "province":"14",
                               "district":"1603",
                               "mobile":""},
                    "address_id":f"{id}",
                    "session":{"uid":f"{self.uid}","sid":f"{self.sid}"}}
        upd_response = Interface.upd_dress(method=method,url=upd_url,data=upd_data)
        data = self.db.find_one(sql)
        news = data['consignee']
        self.assertEqual(olds,news,msg="修改收货地址--使用非法数据修改成功")


    def test_address_06(self):
        """删除收货地址"""
        #删除之前查看数量
        id = self.address_03()
        sql = "select count(*) from ecs_user_address where user_id = (select user_id from ecs_users where user_name = 'hxj123456')"
        datas = self.db.find_one(sql)
        num = datas['count(*)']
        # address_id = self.upd_address()
        del_url = "http://ecshop.itsoso.cn/ECMobile/?url=/address/delete"#删除地址的网址
        method = "post"
        del_data = {"address_id":f"{id}",
                    "session":{"uid":f"{self.uid}","sid":f"{self.sid}"}}
        del_response = Interface.del_dress(method=method,url=del_url,data=del_data)
        #删除之后查看数量
        datas_2 = self.db.find_one(sql)
        new_num = datas_2['count(*)']
        #断言,查看删除前和删除后是否一致
        self.assertEqual(new_num,num-1,msg="删除数据失败")
Example #7
0
class WaitOrder(unittest.TestCase):
    def setUp(self):
        self.sid, self.uid = Login.login()
        self.db = DB()

    def order(self):
        """查看待付款订单"""
        url = "http://ecshop.itsoso.cn/ECMobile/?url=/order/list"
        method = "post"
        data = {
            "session": {
                "uid": f"{self.uid}",
                "sid": f"{self.sid}"
            },
            "type": "await_pay",
            "pagination": {
                "count": 10,
                "page": 1
            }
        }
        response = Interface.wait_pay_list(method=method, url=url, data=data)
        order_id = get_result_one(response, "order_id")
        order_sn = get_result_one(response, 'order_sn')
        return order_id, order_sn

    def test_01(self):
        """查看待付款订单"""
        order_id = self.order()[0]
        order_sn = self.order()[1]

        sql = "SELECT *from ecs_order_info where user_id = '4349' and order_id = '2659'"
        data = self.db.find_one(sql)
        info = data['order_sn']
        self.assertEqual(info, order_sn, msg="代付款订单信息错误")
        # status = get_result_one(response, "succeed")
        # self.assertEqual(res, 1)

    def test_02(self):
        """取消订单"""
        order_id = self.order()
        del_url = "http://ecshop.itsoso.cn/ECMobile/?url=/order/cancel"
        method = "post"
        del_data = {
            "session": {
                "uid": f"{self.uid}",
                "sid": f"{self.sid}"
            },
            "order_id": f"{order_id}"
        }
        response = Interface.del_order(method=method,
                                       url=del_url,
                                       data=del_data)
        status = get_result_one(response, "succeed")
        # print(SendMethod.response_dumps(response))
        self.assertEqual(status, 1, msg="代付款取消订单失败")

    def test_03(self):
        """点击付款"""
        order_id = self.order()
        url = "http://ecshop.itsoso.cn/ECMobile/?url=/order/pay"
        method = "post"
        data = {
            "session": {
                "uid": f"{self.uid}",
                "sid": f"{self.sid}"
            },
            "order_id": order_id
        }
        response = Interface.pay(method=method, url=url, data=data)
        # print(SendMethod.response_dumps(response))
        status = get_result_one(response, "succeed")
        self.assertEqual(status, 1, msg="付款失败")

    def test05(self):
        """点击确认收货"""
        order_id = self.order()
        url = "http://ecshop.itsoso.cn/ECMobile/?url=/order/affirmReceived"
        method = "post"
        data = {
            "session": {
                "uid": f"{self.uid}",
                "sid": f"{self.sid}"
            },
            "order_id": order_id
        }
        response = Interface.sure_shouhuo(method=method, url=url, data=data)
        # print(SendMethod.response_dumps(response))
        status = get_result_one(response, "succeed")
        self.assertEqual(status, 1, msg="待收货确认收货失败")