【UI自动化测试】7_TPshop项目实战 _前台-门户网站

📅 发布时间:2026/7/3 14:19:03 👁️ 浏览次数:
【UI自动化测试】7_TPshop项目实战 _前台-门户网站
文章目录一、门户网站二、测试案例2.1 搜索商品案例2.1.1 PO封装2.1.2 用例编写2.2 加入购物车案例2.2.1 PO封装2.2.2 用例编写三、追加关闭驱动对象开关和排序3.1 门户网站 驱动对象修改3.2 门户网站排序四、商品名称全局参数五、总结一、门户网站page包 PO封装 - buyer_page(包)-- ①index_page.py 代表页面类搜索关键字 -- ②goods_page.py 包含搜索结果页和加入购物车 script包 测试案例 - buyer_script(包)-- test_begin.py -- ①test_goods.py 搜索商品 -- ②test_cart.py 加入购物车 -- test_end.py二、测试案例2.1 搜索商品案例2.1.1 PO封装fromselenium.webdriver.common.byimportByfrombase.base_pageimportBuyerBasePage# 定义代表页面类classIndexPage(BuyerBasePage):# 定义实例属性管理本次用例在该页面操作元素定位信息def__init__(self):super().__init__()# 搜索输入框self.search_box(By.ID,q)# 搜索按钮self.search_btn(By.CLASS_NAME,ecsc-search-button)# 定义业务方法组织测试用例在该页面所执行的操作步骤【excel用例测试步骤】defquery_goods(self,key_word):# 1、在首页输入搜索关键字self.input_text(self.find_el(self.search_box),key_word)# 2、点击【搜索】self.find_el(self.search_btn).click()2.1.2 用例编写importtimeimportallureimportpytestimportconfigfromconfigimportBASE_PATHfrompage.buyer_page.index_pageimportIndexPagefromutilsimportDriverUtils,el_is_exist_by_textpytest.mark.run(order103)# 定义测试类classTestGoods:defsetup_class(self):# 1、打开浏览器self.driverDriverUtils.get_buyer_driver()# 打开测试网址self.driver.get(http://192.168.189.139)defteardown_class(self):# 5、关闭浏览器DriverUtils.quit_buyer_driver()# 定义测试方法 【对应测试案例标题】deftest_query_goods(self):# 2、在首页输入搜索关键字# 3、点击【搜索】IndexPage().query_goods(config.GOODS_NAME)# 4、断言try:# 调用根据文本判断当前页面是否存在的函数assertel_is_exist_by_text(self.driver,False,config.GOODS_NAME)exceptExceptionase:# 将错误截图保存到allure的测试报告中allure.attach(self.driver.get_screenshot_as_png(),BASE_PATH/img/query_goods.png,allure.attachment_type.PNG)raisee# 继续抛出异常如果不写则表示捕获到异常但是不跑出来2.2 加入购物车案例2.2.1 PO封装fromselenium.webdriver.common.byimportByimportconfigfrombase.base_pageimportBuyerBasePage# 包含搜索结果页商品详情页classGoodsPage(BuyerBasePage):def__init__(self):super().__init__()# 商品名称self.goods_name(By.XPATH,//*[contains(text(),{} )])# 加入购物车self.add_cart_btn(By.ID,join_cart)# iframe标签【加入购物车弹窗在iframe标签中】self.frame(By.CSS_SELECTOR,[id*layui-layer-iframe1])# 加入购物车方法defadd_goods_cart(self):# 点击商品名称# self.find_el(self.goods_name).click()self.driver.find_element(self.goods_name[0],self.goods_name[1].format(config.GOODS_NAME)).click()# 点击加入购物车self.find_el(self.add_cart_btn).click()# frame切换,调用父类切换frame的方法self.switch_frame(self.find_el(self.frame))2.2.2 用例编写importtimeimportallureimportpytestimportconfigfromconfigimportBASE_PATHfrompage.buyer_page.goods_pageimportGoodsPagefrompage.buyer_page.index_pageimportIndexPagefromutilsimportDriverUtils,el_is_exist_by_text,get_el_text# 定义测试类pytest.mark.run(order104)classTestGoods:defsetup_class(self):# 1、打开浏览器self.driverDriverUtils.get_buyer_driver()# 打开测试网址self.driver.get(http://192.168.189.139)defteardown_class(self):# 5、关闭浏览器DriverUtils.quit_buyer_driver()# 定义测试方法 【对应测试案例标题】deftest_add_cart(self):# 2、搜索商品IndexPage().query_goods(config.GOODS_NAME)# 3、点击商品标题进入详情页后再点击加入购物车GoodsPage().add_goods_cart()time.sleep(5)# 断言try:# 获取弹出框提示信息msgget_el_text(self.driver,//*[classconect-title]/span)assert添加成功inmsgexceptExceptionase:# 将错误截图保存到allure的测试报告中allure.attach(self.driver.get_screenshot_as_png(),BASE_PATH/img/test_add_cart.png,allure.attachment_type.PNG)raisee# 继续抛出异常如果不写则表示捕获到异常但是不跑出来三、追加关闭驱动对象开关和排序批量运行所有测试案例运行后台的所有测试用例添加商品再运行前端门户网站的测试用例搜索商品并添加购物车。自动化可以重复无限使用。1、确保前端门户网站也是按顺序执行的2、门户网站测试用例也只打开一次关闭一次浏览器3、后台发布的商品是前台搜索商品的条件3.1 门户网站 驱动对象修改3.2 门户网站排序四、商品名称全局参数后台发布商品作为前台门户网站搜索以及加入购物车的一个动态商品的参数。后台发布什么商品前台查什么商品五、总结