• 遇到的问题


     【ui自动化】

    UI自动化测试框架介绍

    T&T

    config

    configs.py 配置信息

    data-driven

    测试用的excel 数据驱动测试用例及其他数据

    model

    通用操作类

    page_object

    基类及测试页面类,控件识别在测试页面中,所有页面继承page类。

    report

    报表文件 html

    TestCase

    页面UI测试用例,测试用例与页面元素进行分离,便于维护;

    所有测试用例继承 myunit.MyTest 类

    run_all_test.py

    所有测试用例一起执行总文件

    1、怎么获取新的浏览器窗口内容,用什么方法

    1、获取当前窗口句柄

    driver.current_window_handle

    2、获取所有句柄

    driver.window_handles

    3、切换窗口

    driver.switch_to.window(handle)

    2、页面元素等待有哪几种方法;显示等待和隐式等待区别在于,方法名叫什么

    显示等待:使webdriver等待某个条件成立时继续执行,否则在达到最大时长时抛弃超时异常

    webdriverwait类是由webdriver提供的等待方法。

    element=webdriverwait(driver,5,0.5).until(EC.presence_of_element_located(By.id,'KW'))

    webdriverwait(driver,timeout,poll_frequency=0.5,ignored_exceptions)

    driver:浏览器驱动

    timeout:最长超时时间,默认以秒为单位

    poll_frequency:检测的间隔(步长)时间,默认为0.5

    ignored _exceptions:超时后的异常信息,默认情况下抛NosuchElementException异常。

    webdeiverwait一般由until或until_not() 方法配合使用。

    until(method,message='')

    调用该方法提供的驱动程序作为一个参数,直到返回True

    until_not(method,message="")

    调用该方法提供的驱动程序作为一个参数,直到返回False 

    隐式等待:通过一定的时长等待页面上某个元素加载完成。如果超出了设置的时长元素还没有被加载,则抛出Nosuchexception异常。

    webdriver提供implicitly_wait()方法来实现隐式等待,默认设置为0

    driver.implicitly_wait(10)

    默认以秒为单位,10秒并不是固定等待时长,它并部影响脚本的运行速度,其次它不是针对页面上某一个元素进行等待,

    当脚本执行到某个元素定位时,如果元素可以定位,则继续执行,如果元素定位不到,则它将以轮询的方式不断的去判断元素是否定位到。

    假设在第6秒定位到元素,则继续执行,若直到10秒都还没有定位到元素,则抛出异常。

    sleep休眠方法

    固定时间休眠。sleep()方法是python的time模块提供的

    3、有撒好的方法,来维护ui自动化脚本。

    4、获取元素的方法element和elements的区别在于。

    find_element  只会查找页面中符合条件的第一个节点,并返回

    find_element 

    如果查找的目标在网页中只有一个,那么完全可以用find_element(),但如果有多个满足要求的节点,用find_element()就只能得到第一个节点了,所以查找多个节点时,应该使用find_elements()更好.

    find_element()会返回一个WebElement节点对象,但是没找到会报错,而find_elements()不会,之后返回一个空列表

    查找多个元素的时候:只能用find_elements(),返回一个列表,列表里的元素全是WebElement节点对象

     

    【接口自动化】

    1、jmeter 后置处理器有哪些组建

    1、BeanShell PostProcessor

    2、JDBC PostProcessor

    3、jSON Extractor 

    属性 描述 备注
    Variable Names 变量名
    JSON Path Expressions Json提取表达式
    Match No. (0 for Random) 当提取有多个结果值时,选择需要的值保存到变量中,默认值为0
    0:随机一个
    -1:全部值,使用_N 方式保存(N从1开始),比如status_1,status_2…
    X: 自然数,比如1,返回第X个值(如果X大于返回值的数量,结果会不能获取,最终返回设置的默认值)
    Compute concatenation var 如果有匹配到多个值,选择此项,会将全部值保存到_ALL,并使用逗号分割每个值 注意Match No. (0 for Random)需要为-1才有效,不然只能匹配到一个值了

    4、JSON Path Extractor

    5、正则表达式提取器

    属性                                描述                                                                                                                                   备注Apply to                        Sampler可能会产生子Sampler,这里需要选择从哪个Sampler中进行提取 

    要检查的响应字段        指要从请求的哪部分内容中进行提取
                                        主体:请求的响应数据
                                        Body (unescaped):请求的响应数据,html代码不会被转义
                                        Body as a Document:
                                       信息头:指响应头
                                       Request Headers:请求头
                                       URL: 请求地址
                                      响应代码:e.g 200                                                                                                            响应信息:e.g OK 感觉这些中文翻译有点绕。。可以从下面的注解截图中了解下
     引用名称                   用来保存提取结果的。同时还会生成一组变量,[引用名称]_g#:
                                       [引用名称]_g:表达式提取的次数(指表达式中”()”的数量)
              [引用名称]_g0:表达式匹配到的完整字符串
              [引用名称]_g1:表达式中第1个“()”提取到的值
              [引用名称]_g2:表达式中第2个“()”提取到的值
                                                    。。。 如果表达式匹配到多个字符串,最终引用名称生成的变量会变成  [引用名称]_N_g#, N表示匹配的字符串顺序

    正则表达式       正则表达式,最少要包括一个“()”, 括号里面的表示要提取的内容         比如:aaa(.+?)ccc, 可以提取到aaabbbcc中的 “bbb”.
    (.+?)是一个很常用的表达式,
    .表示任意一个字符
    +表示重复一次或多次
    ?表示匹配0次或一次
    更多的的介绍可以看下:正则表达式
    模板 说明要获取哪个提取式的内容,比如
    ’$1$’: 获取第1组的内容(指第一个“()”中提取到的值)
    ’$2$’: 获取第2组的内容
    。。。
    $0$ :表示获取整个表达式匹配的内容(就是[引用名称]_g0 的值)
    匹数数字                 表达式可能会匹配多个字符串,匹数数字说明要获取第几个匹配值
    0:表示随机一个
    N:表示第N个
    -1:表示全部(负数都是一样的) 如果填写了负数,最终引用名称必然会加上序号,比如[引用名称]_1, 使用的时候要注意
    缺省值                 表达式匹配不到字符串时,保存到引用名称中的值 默认值,可以为空的

    2、参数话有哪些方法

    2、用户定义变量

    设置方式:添加→配置元件→用户定义的变量,设置如下: 

    3、设置方式:添加→配置元件→csv data set config,设置如下: 

    1.为文件所在的位置,可以建txt文档,然后,直接改后缀名。里面的内容,第一行直接为数据。这里支持csv,txt,dat三种格式。

    2.utf-8,编码格式,直接照写就行

    3.sku,为参数的名字,用${sku}替换要参数化的地方。如果有多个变量,则用逗号隔开,如user,pwd

    4、随机函数RandomString

    位置:按照1-2-3的步骤

    操作:4中填写文件的位置,5中填写要读取的列的位置,第一列为0。点击【生成】按钮,拷贝字符串,去替换要参数化的值。

    注意:Jmeter读取的文件中第一行没有标题,直接就是值了。

    5、随机函数RandomString

    设置方式:选项→函数助手对话框→选择函数为:_RandomString,设置如下:

    说明:第一项为长度,设为2,则会取2个汉字;第二项为可选,建议填上,生成的随机字符串会从这一项中随机选取并组合;第三项可选,可填可不填;最后点击生成,把生成的一堆东西复制粘贴在参数的位置,如下:

     

    3、jmeter正则表达式的使用;模板1,和模板2分别什么意思;怎么获取token,* ?的区别;

    ’$1$’: 获取第1组的内容(指第一个“()”中提取到的值)
    ’$2$’: 获取第2组的内容
    。。。
    $0$ :表示获取整个表达式匹配的内容(就是[引用名称]_g0 的值)

    .表示任意一个字符
    +表示重复一次或多次
    ?表示匹配0次或一次

    4、jmeter怎么做性能测试,需要关注哪些测试点

    5、三次握手四次挥手

    6、https协议

    7、url地址组成部分

    【python自动化脚本】

    1、使用的什么框架

    2、测试用例是怎么管理的

    3、setup&setdown  与setupclass&setdownclass区别

    【对excel表的操作】

  • 相关阅读:
    [FAQ] GitHub 开启二次验证之后,如何通过 https clone 项目 ?
    [FAQ] GoLand 需要手动开启代码补全吗 ?
    [FAQ] 夏玉米 按规则查询域名靠谱吗 ?
    [FAQ] Error: com.mysql.jdbc.Driver not loaded. :jdbc_driver_library
    [php-src] Php内核的有趣高频宏
    [php-src] Php扩展开发的琐碎注意点、细节
    [ELK] Docker 运行 Elastic Stack 支持 TLS 的两种简单方式
    [Contract] Solidity 生成随机数方案
    [MySQL] 导入数据库和表的两种方式
    [ELK] 生产环境中 Elasticsearch 的重要配置项
  • 原文地址:https://www.cnblogs.com/fkkk/p/10872704.html
Copyright © 2020-2023  润新知