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)
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)
def findOne(cls,k,v): return cls(**DB.find_one(cls.collection,{k:v}))
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)
def getById(cls, id): x = DB.find_one(cls.collection, {'_id': id}) return cls(**x)
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="删除数据失败")
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="待收货确认收货失败")