测试流程

  PRD产品需求文档(交互,逻辑)

    PRD评审

    研发(写代码技术档案,写代码)

    测试(写计划,写方案,写测试用例)

    转测试(冒烟测试,完成,上线)

    开始测试

 

对边界值和等价类的理解

  等价类可分为有效等价类、⽆效等价类,是常⽤的⿊盒测试⽤例设计⽅法。边界值分析法是作为对等价类划分法的补充,其测试⽤例来⾃等价类的边界。

针对某一事物设计他的测试用例 

 

数据库查询一个范围使用的关键字是什么

  between and

 

怎么解读内连接,左连接,右连接

  内连接inner join 主要是获取两个表中字段匹配关系的表,查询关联字段共同拥有的数据

  左连接right join 获取左表所有信息,获取左表所有数据符合要求的字段数据信息

  右连接left join 获取右表所有信息,获取右表所有数据符合要求的字段数据信息

 

查看表的结构

  desc user

 

怎么理解列表里的appeal insert的方法

  appeal:对列表最后添加

  insert:在索引指定位置添加

 

断言使用的关键字

  assert

 

怎么理解动态参数

  参数类型的时候调用,且只输出对应类型值;三种形式:形式参数为空、为list、为字典

 

元素定位的方法有几个

  8个和对应的复数方法:ID、NAME、CLASS_NAME、XPTH、CSS、LINK_TEXT、PARYIAL_LINK_TEXT、tag_name

 

多窗口的解决方案

  对打开首个网页句柄进行记录

  对第二次打开网页句柄进行记录

  循环所有的窗口

  判断两次句柄是否一致

  如果不是,切换到新的窗口

  在新的窗口进行操作

  关闭新的窗口

  返回首个窗口

driver = webdriver.Chrome()
driver.maximize_window()
driver.get('https://mail.163.com/')
t.sleep(3)
nowHandler = driver.current_window_handle
driver.switch_to.frame(0)
driver.find_element_by_link_text("忘记密码?").click()
allHandler = driver.window_handles
for handler in allHandler:
    if handler != nowHandler:
        driver.switch_to.window(handler)
        url = driver.current_url
        t.sleep(3)
        assert url.endswith('https://reg.163.com/naq/findPassword#/verifyAccount') == True
        driver.close()
t.sleep(3)
driver.quit()

  ifame框架如何定位

ID,索引,name

 

  linux中如何查看端口

lsof -i:对应端口  如 losf -i: 3306

 

  文件前后十行

head -n N  如 head -n 10

tail -n N     tail -n 10

 

综合考核:

1、HTTP协议的组成部分?

  HTTP 请求的组成

    状态行、请求头、消息主体三部分组成。

  HTTP 响应的组成

    状态行、响应头、响应正文

2、postman中断言是在哪里断言?断言哪三部分?

postgre密码忘了_元素定位

  一般断言协议状态码,返回参数是否包含某部分,响应时间

3、postman的请求参数在哪里?

  post 请求

postgre密码忘了_等价类_02

  get 请求

postgre密码忘了_数据_03

4、一个完整的测试流程?

  PRD产品需求文档(交互,逻辑)

  PRD评审

  研发(写代码技术档案,写代码)

  测试(写计划,写方案,写测试用例)

  转测试(冒烟测试,完成,上线)

  开始测试

5、冒烟测试是什么?

  确认软件基本功能是否正常

6、开发要转测的依据是什么?

  开发自测———————转测

    |  反馈      |  冒烟测试——流程是否通

 冒烟测试失败——不通过   |  通过——进入测试环节

7、如果开发那边代码写不完,超过预期时间你怎么办?

  早会时间进行问题反馈,加快开发进度或进行上线延期

8、对淘宝购物车有哪些测试点?用等价类边界值如何划分?

例:购物车商品添加

  购物车商品删除

  购物车商品数量增加

  购物车商品结算

  购物车商品金额改变,是否显示正常

  购物车的全选功能

设商品数量最小为 1 最大为 100

  商品添加100个是否出现异常

  商品添加101个是否出现异常

  商品添加1个是否出现异常

  无货商品添加是否异常

9、ui测试定位元素有?对于多元素怎么定位?

  ID="id"

  XPATH="xpath"

  LINK_TEXT="link text"

  PARTIAL_LINK_TEXT="partial link text"

  NAME="name"

  TAG_NAME="tag name"

  CLASS_NAME="class name"

  CSS_SELECTOR="css selector"

  单个元素定位:find_element

  多个元素定位:find_elements

    单个元素定位和多个元素定位的区别就是,单个元素定位返回是单个元素,多个元素定位返回的是包含多个元素的一个列表。

10、ui自动化测试和接口测试区别?

  接口效率高,覆盖率高,维护成本低,属于低成本,高收益。

  UI自动化效率低,易受其他原因影响导致执行失败,覆盖率低,维护成本较高,属于投入较高,收益较低的类型。优点是可以完全模拟用户行为,更贴近真实

11、接口测试需要携带哪些参数?

  Content-Type:指的是数据格式

  Cookie:反爬虫,身份凭证

  Referer:发送请求的地址是从哪里来的

  User-Agent:发送网络请求的时候向服务端标注请求是通过什么浏览器或者什么软件(PostMan,JMeter)发送的

12、linux有哪些常用的命令?查看文件是那个命令?

  ls列出目录内容格式:ls[选项][目录名] []中非必选项

  alias:查看系统存在的别名

  定义别名:alias 别名=“命令”

  取消⼀个别名:unalias 别名

13、比如mysql中对2021年的前6个月的工资总和,用到那些命令?

  select sum(表项) from 表名;

14、常用的请求方法?get和post方法区别?

  GET:客户端从服务端获取资源

  POST:客户端往服务端发送请求添加新的资源

  PUT:客户端针对服务端已有的数据进行更新

  DELETE:客户端删除服务端已有的数据

POST和GET的区别
  GET提交的数据放在URL中,POST不会
  GET回退无影响,POST会再次提交请求(POST每次都会创建新资源)
  GET提交的数据大小有限制(浏览器对URL的长度有限制,GET本身没有限制),POST没有
  GET可以被保存为书签,POST不可以
  GET能被缓存,POST不能
  GET只允许ASCII字符,POST没限制
区别就在于数据存储的位置。各自有适用环境,根据需求选择合适的方法即可。

15、常用的业务状态码?

  200:请求已正常处理

  301:永久性重定向

  302:临时性重定向

  303:303状态码和302状态码有着相同的功能,303状态码表示客户端应当采用GET方法获取资源

  400:请求报文中可能存在语法错误。

  401:该状态码表示发送的请求需要通过HTTP认证

  403:表明对请求资源的访问被服务器拒绝了(无权限)

  404:服务器上没有请求的资源

  500:表明服务器端在执行请求时发生了错误

  503:服务器暂时处于超负载或正在停机维护

16、元组和字典的区别?

  元组不可修改;字典可修改,没有顺序

17、字典如何输出key的值?如何输出value的值?

dict1 = {'a': 'b', 'c': 'd', 'e': 'f'}
print("对字典根据key进行排序:", dict(sorted(dict1.items(), key=lambda item: item[0])))
print("对字典根据value进行排序:", dict(sorted(dict1.items(), key=lambda item: item[1])))

 

文件上传服务  超时

        成功,文件是否确实

        成功,文件内容乱码

        拆分上传 上传成功后合并

文件上传服务  打开 JVM 工具

        获取 pid

        成功,文件内容乱码

        拆分上传 上传成功后合并