app测试-有道云--文件导入测试数据结果写入文件

     

本次总结:

1.手写xpath.app测试中一般有id,当没有id,classname重名的时候可以用xpath定位

例子://*[@resource-id="com.youdao.note:id/note_content"]/android.widget.EditText

//*表示从任意父节点开始定位.@resource-id表示父节点是用id定位的。/子节点的定位

2.文件写入测试数据和测试结果写入文件:

# 以读的方式打开文件
file1=open('addnotedata.csv','r')
table=csv.reader(file1)
# 以写的方式打开文件
file2=open('addontereslt.csv','w',newline='')
writer=csv.writer(file2)

用循环读取文件

for rows in table:
        # 添加测试通过在行的后面
        rows.append('测试通过')
        # 把添加了测试通过的行写入测试结果文件
        writer.writerow(rows)

3.三种时间等待:

time.sleep()固定时间等待 

implicitly_wait() 隐式等待,写在所有操作开始之前

WebDriverWait(driver,10).until 一直等待知道控件出现。下面代码中有例子

# v2.0从文件中读取测试数据进行新增笔记的测试,并写测试结果到结果文件
import time

from youdaoyunproject.work_addnote import yd_addnote
from appium.webdriver.webdriver import WebDriver
from selenium import webdriver
from selenium.webdriver.support.wait import WebDriverWait
import csv

class yd_addnotev2(yd_addnote):
    # 重写test_add方法,传入title和content参数
    def test_add(self,title,content):
        # 等待10秒,直到对象x出现
        el = WebDriverWait(self.driver, 10).until(
            lambda x: x.find_element_by_id('com.android.packageinstaller:id/permission_allow_button'))
        # # 假如对象el出现
        if el:
            # 点击允许按钮
            self.driver.find_element_by_id('com.android.packageinstaller:id/permission_allow_button').click()
            # 点击新增按钮
            self.driver.find_element_by_id('com.youdao.note:id/add_note').click()
            # 点击新建按钮
            self.driver.find_element_by_id('com.youdao.note:id/add_note_floater_add_note').click()
            # 点击取消按钮
            self.driver.find_element_by_id('com.youdao.note:id/btn_cancel').click()
            # 输入内容
            self.driver.find_element_by_xpath(
                '//*[@resource-id="com.youdao.note:id/note_content"]/android.widget.EditText').send_keys(content)
            # 输入标题
            self.driver.find_element_by_id('com.youdao.note:id/note_title').send_keys(title)
            # 点击完成按钮
            self.driver.find_element_by_id('com.youdao.note:id/actionbar_complete_text').click()
    def check_addnote(self,title):
        rtitle=self.driver.find_element_by_id('com.youdao.note:id/title').text
        if rtitle==title:
            return 1
        else:
            return 0
if __name__ == '__main__':
    # 以读的方式打开文件
    file1=open('addnotedata.csv','r')
    table=csv.reader(file1)
    # 以写的方式打开文件
    file2=open('addontereslt.csv','w',newline='')
    writer=csv.writer(file2)
    for rows in table:
        # 在这个位置实例化为了每次循环都初始化一次属性,对应的重启一次程序。
        yd_addnote_obj = yd_addnotev2()
        print(rows[0])
        print(rows[1])
        title=rows[0]
        content=rows[1]
        # 调用新增笔记测试方法
        yd_addnote_obj.test_add(title,content)
        # 调用检查新增是否正确方法
        r=yd_addnote_obj.check_addnote(title)
        print(r)
        if r:
            # 添加测试通过在行的后面
            rows.append('测试通过')
            # 把添加了测试通过的行写入测试结果文件
            writer.writerow(rows)
        else:
            rows.append('测试失败')
            writer.writerow(rows)
    file2.close()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值