遇到的问题

 【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表的操作】

原文地址:https://www.cnblogs.com/fkkk/p/10872704.html