测试对象:bysms(白月黑羽SMS) 下载说明及地址:http://www.python3.vip/prac/pub/info/bysms/ 访问系统网址:http://127.0.0.1/mgr/index.html#/customers(用户名 :byhy 密码: 88888888)
一、UI自动化测试
from hyrobot.common import *
from selenium import webdriver
import time
class c1: #rf是直接执行.robot文件,run会生成并执行
# 测试用例名称
name='管理员首页 -UI-0101'
#测试用例步骤teststeps,名字不能错
def teststeps(self):
STEP(1,'登录网站')
wd=webdriver.Firefox()
wd.implicitly_wait(5)
wd.get('http://127.0.0.1/mgr/sign.html')
wd.find_element_by_id('username').send_keys('byhy')
wd.find_element_by_id('password').send_keys('88888888')
wd.find_element_by_css_selector('button[type="submit"]').click()
time.sleep(2)
STEP(2, '获取左侧菜单信息')
# 先找到上层节点,缩小查找范围
sidebarMenu = wd.find_element_by_class_name('sidebar-menu')
# 再找到内部元素
elements = sidebarMenu.find_elements_by_tag_name('span')
menuTitles=[]
for ele in elements:
print(ele.text)#print信息在执行的终端不会显示,但是会在报告中显示,如果要在终端也打印出来可使用hy内置的函数INFO
menuTitles.append(ele.text)
STEP(3, '检查是否正确')
# if menuTitles[:3]==['客户','药品','订单']:
# print('通过')
# else:
# print('不通过')
# exit(1) #退出后后面的用例会无法执行,可直接使用hy的check_point
CHECK_POINT("检查左侧菜单信息是否正确",menuTitles[:3]==['客户','药品','订单'])
wd.quit()
二、接口自动化测试
from hyrobot.common import *
import requests,json
class c1:
# 测试用例名称
name='客户管理页 -JK-0101'
#接口测试用例步骤
def teststeps(self):
STEP(1, 'post请求,登录获取登录Cookies')
# post请求,登录接口
url = "http://127.0.0.1/api/mgr/signin"
data = {'username': 'byhy', 'password': '88888888'}
result = requests.post(url, data)
print(result.json())
STEP(2, 'get请求,列出所有客户')
# get请求,列出所有客户接口
url = 'http://127.0.0.1/api/mgr/customers?action=list_customer&pagesize=5&pagenum=1'
req = requests.get(url) # 发送get请求
print(req.text) # 获取结果直接返回的就是json串
print(type(req.text)) # str
print(json.loads(req.text)) # json转字典
print(req.json()) # 获取结果就是字典,只有返回的是json串的话才能用req.json()
print(type(req.json())) # dict
三、参考资料
hyrobot自动化测试框架:http://www.python3.vip/tut/auto/hyrobot/01/ api接口自动化测试:http://www.python3.vip/tut/auto/apitest/01/ request库:https://requests.readthedocs.io/zh_CN/latest/ api接口:http://www.python3.vip/tut/webdev/django/doc_api_v1_2/