51Testing软件测试论坛

标题: 请教下大佬们,谢谢! [打印本页]

作者: 测试积点老人    时间: 2021-7-7 15:42
标题: 请教下大佬们,谢谢!
请教下大佬们,使用@pytest.mark.parametrize数据驱动时,提示“TypeError: message_complete() missing 1 required positional argument: ‘bathroom_name’”
  1. def test_data():
  2.     # 打开Excel文件
  3.     path = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
  4.     openExcelFile = open_workbook(path + "/config/data.xlsx")
  5.     # 获取工作表
  6.     getSheet = openExcelFile.sheet_by_name("Sheet1")
  7.     # 获取行数
  8.     rowNumber = getSheet.nrows
  9.     # 数据List
  10.     dataList = []
  11.     # 从第二行开始遍历每一行
  12.     for i in range(1, rowNumber):
  13.         # 把每个单元格的数值存放到dataLis
  14.         dataList.append(getSheet.row_values(i))
  15.     return dataList

  16. """浴室管理"""
  17. class Bathroom_Func(BasePage):

  18.     def add_bathroom(self):
  19.         lp = BasePage(self._driver)
  20.         """
  21.         点击右上角“新增”按钮进入新增浴室界面
  22.         :return:
  23.         """
  24.         try:
  25.             self._driver.find_element_by_android_uiautomator('new UiSelector().resourceId("com.qekj.merchant:id/iv_add")').click()
  26.         except Exception as e:
  27.             self._driver.get_screenshot_as_file(lp.screenshot_filepath())
  28.         return self

  29.     @pytest.mark.parametrize("bathroom_name", test_data())
  30.     def message_complete(self, bathroom_name):
  31.         lp = BasePage(self._driver)
  32.         """
  33.         完善新增浴室信息
  34.         """
  35.         sleep(1)
  36.         try:
  37.             self._driver.find_element_by_android_uiautomator(
  38.                 'new UiSelector().resourceId("com.qekj.merchant:id/et_device_name")').send_keys(bathroom_name)
  39.             self._driver.find_element_by_android_uiautomator(
  40.                 'new UiSelector().resourceId("com.qekj.merchant:id/tv_store_name")').click()
  41.             sleep(1)
  42.             self._driver.find_element_by_android_uiautomator(
  43.                 'new UiSelector().text("确定")').click()
  44.             sleep(1)
  45.             self._driver.find_element_by_android_uiautomator(
  46.                 'new UiSelector().resourceId("com.qekj.merchant:id/tv_sex")').click()
  47.             self._driver.find_element_by_android_uiautomator(
  48.                 'new UiSelector().text("确定")').click()
  49.             self._driver.find_element_by_android_uiautomator(
  50.                 'new UiSelector().text("提交")').click()
  51.         except Exception as e:
  52.             self._driver.get_screenshot_as_file(lp.screenshot_filepath())
  53.         return self

  54.     @pytest.mark.parametrize("bathroom_name",test_data())
  55.     def delete_bathroom(self,bathroom_name):
  56.         """删除新增浴室"""
  57.         action1 = 'new UiSelector().text{bathroom_name}'.format(bathroom_name=bathroom_name)
  58.         action2 = 'new UiSelector().text("删除")'
  59.         self._driver.find_element_by_android_uiautomator(action1).click()
  60.         self._driver.find_element_by_android_uiautomator(action2).click()
  61.         return self
复制代码
[attach]133016[/attach]

作者: 海海豚    时间: 2021-7-8 09:16
对bathroom_name这个实例化一下
作者: bellas    时间: 2021-7-8 10:16
找下这个bathroom_name赋值了没
作者: qqq911    时间: 2021-7-8 10:34
看下是不是要加self
作者: 郭小贱    时间: 2021-7-8 16:51
@pytest.mark.parametrize需要在pytest框架下执行的。




欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2